2012-02-13 5 views
1

소스 코드가없는 타사 구성 요소에 대해 일부 코드를 작성하고 있습니다. (이 :)에 대한 의견을 말하지 않는다), 뭔가 그 구성 요소에 대한 메서드를 호출 할 때 발생하고 예외 블록을 제외하고 try 블록에 넣을 경우에도 무시됩니다."try..except"의 except 블록이 무시되는 이유

내가 잘못 했나요?

이유가 무엇일까요? 단계별

begin 
    try 
    3rdPartyComponentWithNoSourceCode.MethodOne; [A] 
    SomeOtherCode; 
    except 
    HandleException; [A'] 
    end; 
end; [B] 

디버깅 단계 [A '를]를 정지하지 않고, [A] [B] 내지 날 가져온다.

왜?

+2

그래서 *'SomeOtherCode'도 *'HandleException'도 실행되지 않습니다? –

+1

'[B]'를 치면 응용 프로그램이 정상적으로 진행됩니까? –

+8

'except' 섹션에'on exception do ... '절이 있습니까? 그렇지 않다면'HandleException; 앞에 Exception do'을 추가하고 동작이 바뀌는 지 확인하십시오. –

답변

1

코드를 단계별로 실행할 때 디버거가 예외 처리기로 잘 이동하지 않습니다. 대신 HandleException에 중단 점을 넣으십시오. 첫 번째 위치에 예외가 있으면 중단 점이 중단됩니다.

0

HandleException에 도달하지 못한 이유는 MethodOne 내에 제기 된 예외는 MethodOne에 의해 처리되거나 처리 될 수 있습니다.

뭔가

당신이 뭔가을 확장 할 수 발생합니다 때문에

는하지만 그, propably 그렇지 않습니다?