Q&A

  • Application.OnException 과 try except end 함께 사용하면..
안녕하세요
궁금한것이 있어 글을 올립니다.

프로그램에서
Application.OnException 으로 전체 에러를 잡고
중간중간에 try except end 를 함께 사용하면
try except end로 감싼 부분에서 에러가난다면
application.onexception이 작동되나요 아니면
try부분이 작동이 되나요?

답변 좀 부탁드립니다.
1  COMMENTS
  • Profile
    이광수 2002.02.20 20:00
    제가 알기로는 try except를 쓰면 해당하는 에러에 대해서는
    Application으로 가지 않는 것으로 압니다.

    즉 에러가 발생시 try로 되어있지 않다면 상위의 에러 핸들러를
    찾아가게 되고 아무것도 핸들러가 없다면 최종적으로 Application이
    처리하는 것으로 압니다.

    ex)

    procedure a;
    begin
      try
    except
    ....
    end;

    procedure b
    begin
      try
        a;
      except
    ...
    end;

    이 경우에 a펑션의 try내에서 에러처리는 a가 가지게되고
    a에서 try내에 포함이 안된 것이 에러가 나면 b가 에러처리를 하게되고
    b의 try이외 부분이면 application이 처리합니다.

    try가 하나도 없다면 당연히 application이 모두 처리합니다.

    참고로 Tapplication.HandleException이라는 함수를 부르면
    Application으로 처리를 보내주는군요.
    이때는 Application이 에러를 받아 보겠죠.