|
처리되지 않은 예외를 처리하는 방법은 C빌더에서는 Application->OnException에 헨들러를 두거나
WinAPI중 SetUnhandledExceptionFilter를 이용하는 방법이 있습니다.
죄송 님이 쓰신 글 :
: 안녕하세요. 임프님
: 죄송합니다. 제가 좀 정신이 없어서 다른 친구에게 질문을 올려서 답을 구해달라고 했는데...
: 질문의 요지가 잘못 되었습니다 ㅠㅠ
:
: 프로그램이 좀 큽니다.
: 그런데 어딘지 모르지만 첨부된 그림과 같은 메모리 에러가 납니다.
: 어느 파트에서 나는지 모르기 때문에 소스를 올려드리기 힘들었습니다.
: 어느 부분인지 알면 어떻게 해서든 에러를 잡을 수 있겠지요..
:
: 그래서 아래와 같이 예외가 발생하면 캐치하도록했는데, 포럼을 검색해 본 결과 메모리 예외는 아래와 같은 예외처리로는 잡을수가 없다고 나오는군요.
:
: 문제는 메세지 창이 나와서 이 메세지 창에 응답을 하지 않는 한 프로그램 진행이 안된다는 것입니다.
: 계속해서 루프를 돌아가 주어야 하는데요.
:
: 그래서 질문의 요지는
: 메모리 에러에 대한 예외처리를 어떻게 하는지
: 그리고, 안된다고 한다면, 메세지 박스라도 안나오고 계속해서 루프를 돌수 있게 할수 업는지 ...입니다.
:
:
: 미안합니다만, 바쁘시겠지만 답변주시면 감사하겠습니다.
:
:
: 박지훈.임프 님이 쓰신 글 :
: : 아무런 단서도 없이 그냥 에러메시지 창 하나만 보여주시고는 어떻게 도와달라는 것인지 참...
: : 심지어 에러메시지의 프로그램 이름까지 가리셨네요.
: :
: : AccessViolation인거 같은데, 이건 무조건 코드 문맥을 보지 않으면 못잡는 에러입니다.
: : 여기는 점쟁이 커뮤니티가 아니랍니다~
: :
: :
: : radiang102 님이 쓰신 글 :
: : : 첨부파일의 에로 화면이 계속 등잡합니다.
: : :
: : : 현재 아래와 같은 예외 처리를 하고 있지만
: : :
: : : void __fastcall TForm1::AppException(TObject *Sender, Exception *E)
: : : {
: : : Timer1->Enabled=false;
: : :
: : : String as="Err:"+Now().FormatString("mmddhhnnss:")+IntToStr(State)
: : : +":Sender;"+Sender->ClassName()
: : : +":Except;"+ Sender->ClassName();// __ThrowExceptionName()
: : : //+":File;"+__ThrowFileName()
: : : +":Msg;"+E->Message;
: : :
: : : AddLogToMain("App Exception Error:"+as);
: : :
: : : SerSock->Active=false;
: : :
: : : Application->Terminate();
: : : }
: : :
: : : 이 에러만이 피해 가는군요.
: : : 원인과 처리방법에 관하여 조언을 부탁 드립니다.
: : :
|