2010-02-26 3 views
2

누군가 wxWidgets에서 오류 처리 또는 설명서에 대한 포인터에 대한 정보를 제공 할 수 있습니까?wxWidgets에서의 오류 처리

특히이 동작을 발견했습니다. 파일에서 wxImage를 만들려고합니다. 이것은 이벤트 핸들러에 있습니다. 파일이 없습니다. 이미지 생성자에 대한 호출이 예외를 throw하지 않습니다. wxWidgets 코드가 예외를 throw하지 않는다는 것을 이해합니다. image.Ok()를 호출하면 false가 반환됩니다. 벌금. 그러나 이벤트 처리기가 종료 된 후 wxWidgets는 오류 메시지 대화 상자를 불필요하게 팝업합니다. 이 특정 응용 프로그램에 대해서는 괜찮습니다. 그러나 오류를 직접 처리하려면 오류 발생을 막을 수있는 방법이 궁금합니다. 대화 상자가 이벤트 처리기에서 오는 것으로 의심되지만 EVT_ERROR와 같은 항목을 검색하여 비어 있습니다.

답변

3

이러한 로그 메시지를 표시하지 않으려면 클래스 wxLogNull이 있습니다. 예제가 제공된 http://docs.wxwidgets.org/stable/wx_wxlognull.html#wxlognull을 참조하십시오.

wxWidgets에서이 문제를 처리하는 방법에 대한 자세한 내용은 wxLog overview을 참조하십시오.

+0

감사합니다. (나는 생각한다 :-)) 백과 사전을 읽을 시간. 한눈에, 그것은 약간 복잡하게 보입니다. 오 잘. wxLogNull 예제는 충분히 단순 해 보이지만 오류 메시지는 버립니다. wxLog에서 클래스를 파생한다면 어떤 함수를 재정의하고 싶습니까? DoLog? –

+0

버리기를 원하지 않으면'wxLogStderr'을 사용하여'stderr'에 출력 할 수 있습니다. 이 모든 것은 wxLog 개요에서 설명합니다. 'DoLogString'은 단순한 일을하고 싶은 것처럼 들립니다. –

+0

내가 원했던 것은 실패한 연산이 에러 코드 나 메시지를 가진 예외를 던지는 모델에 최대한 가깝게 접근하는 것이다. 그러나 긴급하지 않습니다. 나는 읽고 공부할 것이다. 다시 한번 감사드립니다. –

0

오류 메시지가 기록 될 경우 예외를 throw하는 자체 로그 대상을 정의 할 수 있습니다. 물론 사용자가 상대적으로 쓸모없는 "파일을 열 수 없습니다"라는 메시지를 보내지 않고 "이미지를 표시 할 수 없습니다"라는 메시지를 이벤트 처리기에서 잡아야 할 수도 있습니다. 열린 "하나. 그리고 이렇게한다면 file.IsOk()을 직접 테스트하고 wxLogError()을 직접 사용해 보는 것이 어떻습니까? 당신이 원하는 것을 할 수는 있지만,이 특별한 경우에 전통적인 예외가없는 방법보다 더 나은 방법은 실제로 없습니다.