내가 등록한 세 개의 핸들러를 처리 : - 국외 거주자 파서 - C++ -Exception 해외 거주자 파서
그리고 메인 프로그램에서
, 나는 XML 파일을 읽어 텍스트, 그것을 버퍼 및 호출 XML_Parse API - -end 시작 . 이 같은 뭔가가 :try {
if(! XML_Parse (....))
{
// throw user-defined expection here
}
catch(...)
{
}
} // end of try
catch(...)
{
}
XML_Parse 실패에 0을 반환하는 경우, 예외가 내부의 경우에서 발생되고있다. 그리고 이너 캐치 블록에 걸렸습니다.
여기 내 질문 : 구문 분석하는 동안 처리기 중 하나에서 사용자 정의 예외가 throw 된 경우 외부 catch에 catch됩니까?
그렇다면 실제로 코드에서 발생하지 않습니다. 대신 던져 버리는 코어 및 스택 쇼를 덤프하고 std : terminate로 연결합니다. HANDLERS로부터 예외를 던지기 전에 다른 작업을 수행해야합니까?
감사합니다.
죄송합니다. 이너 캐치가 없습니다. try 다음에 하나의 catch가 있습니다. 따라서 예외가 발생할 수있는 곳은 두 곳입니다. 하나는 안쪽에서, 다른 하나는 HANDLERS에서. 그렇다면 HANDLERS에서 예외가 발생할 때 어떻게 작동합니까? –
그리고 더 많은 익명 캐치는 문제를 설명하기위한 것입니다. 던져진 객체를 처리하는 올바른 catch 블록이 있습니다. 내 주요 관심사는 HANDLERS가 예외를 던지면 어떻게 될 것입니까? –