Q&A

  • 프로그램 강제종료상황을 디버깅할수 있으려면?
프로그램이 돌다가 어떤 크리티컬한 상황에 닥쳤을때
그만 화면이 닫혀버리는 경우가 있지요
제 경우는 0으로 나누는 경우가 그럴때가 있습니다
어쨋든 영문도 모르게 프로그램이 종료될때 이유를 알고 싶은데
실행화일 만들때 컴파일이나 링크 옵션을 어떻게 해야
문제원인을 알수 있나요
물론 컴파일러없이 프로그램만 단독으로 실행했을 경우입니다  



3  COMMENTS
  • Profile
    윤수아 2004.03.19 19:32
    try ..except 상황은 이미 소스에서 예외를 예상할 수 있는 경우에 씁니다..
    그러지 못한 경우에 디버깅 방법은...
    application.OnException 이벤트를 이용합니다.
    프로그램에 예외상황에 걸리게되면 이 이벤트에는 무조건 들어오게 됩니다..
    자..그럼.. 메인폼 create 부분에

    application.OnException := MyExceptionDebug; 을 넣어주시고요

    MyExceptionDebug를 짭니다.
    procedure MyExceptionDebug(Sender: TObject; E: Exception) 이 형식이고요... E라는 인자를 통해 예외상황에 대한 정보를 입수할 수 있습니다.
    이 부분 코딩에 화일에 그 에러 메시지(E.Message)를 기록하는 루틴을 짜서 넣습니다.. 그럼 프로그램이 어떤 에러에 의해 강제 종료되었을때도 그 화일에는 어떤 에러였는지 내역이 남아 있을겁니다..

  • Profile
    황정숙 2004.03.30 03:48
    정확한 의미를 몰라서 제 생각대로
    이래저래 해봤는데 안되더라구요
    정말 죄송한데요....
    어디다 코딩을 해야하는지 다시 한번만 설명해주시면
    감사 하겠어요
  • Profile
    곰다방~미스김 2004.03.18 20:07
    try
      실행구문;
    except
      예외가 발생했을시 처리할 내용;
    end;

    이렇게 하시면 될거 같네요...
    에러코드를 잡아오거나..사용자에게 경고를 줄수 있구요..강제종료되지는 않을겁니다.에러가 생기면 바로 except 구문으로 넘어가니까요..


    참고하세요..