Qt 4.8을 사용 중입니다. 전체 프로젝트에서 글로벌 시도 및 차단 블록을 사용하는 방법이 있습니까? 내 응용 프로그램에 두 개의 .cpp 파일이있는 경우의 예입니다. 두 가지 .cpp 파일에서 예외를 catch 할 수 있습니까?qt에서 글로벌 try and catch 블록
0
A
답변
0
다음과 같이 :: 또한
int main(int argc, char *argv[])
{
int ret = 0;
try
{
QApplication a(argc, argv);
QWidget w;
w.show();
ret = a.exec();
}
catch(...)
{
/* ... */
}
return ret;
}
참조 당신은 괄호에 main()
기능의 전체 내용을 넣을 수 있습니다 : 모든 std::set_terminate()
1
먼저, Qt는 예외 좋은 재생되지 않는 경고 . 예외가 C++의 다소 모호한 기능이었던 당시에는 예외를 사용하는 것이 일반적으로 구현과 관련된 여러 가지 이유로 우수 사례로 간주되지 않았던 시점에 다시 설계되었습니다. 또한
공식 doc 현재 이야기로 Qt는 5.7로 예외 안전성이 완료 기능이되지 않는다는 경고 :예비 경고 : 예외 안전이 완료 기능이 아닙니다! 일반적인 경우는 효과가 있지만 클래스가 계속 누출되거나 충돌 할 수 있습니다.
클래스 내에서 신호 슬롯 연결을 사용하는 경우 슬롯 내부에서 예외를 처리하는 것이 가장 좋습니다. Qt 5.7부터는 정의되지 않은 동작 인 considered이 발생하지 않습니다. 당신은 그냥 가끔 캐치되지 않는 예외에 대한 몇 가지 정리 및/또는 오류 로깅을 수행 할 경우 이전의 대답에서 알 수 있듯이
, 당신은 try/catch 블록에 전체 main()
내용을 포장 할 수 있습니다 또는 대안 당신은 wrap the Qt's main event loop 수와 같은 블록에 :
QApplication app(argc, argv);
...
try {
app.exec();
}
catch (const std::exception &) {
// clean up here, e.g. save the session
// and close all config files.
return 0; // exit the application
}
관련 문제
- 1. try catch 블록 이해
- 2. 서비스를위한 글로벌 try-catch
- 3. try & catch 블록 구현
- 4. extjs에 대한 글로벌 try catch
- 5. 글로벌 예외 처리기는 불필요한 try catch 블록 제거를 의미합니까?
- 6. node.js에서 try and catch 이해하기
- 7. Java-Try and Catch Statement
- 8. 이상한 try/catch 블록 동작
- 9. Response.Redirect Try/Catch 블록 내부
- 10. 중첩 된 try-catch 블록?
- 11. JUnit for try and catch 블록 적용 범위
- 12. While 루프 및 try and catch
- 13. 여러 개의 try-catch 블록 대 한 개의 큰 try-catch 블록 [스레드에서]
- 14. 예외가 발생할 때까지 Java try and catch
- 15. try-catch 블록 내에서도 예외 실행을 중지합니다.
- 16. JAVA try-catch 블록 후 Unitialised 객체
- 17. Groovy 'with'closure가있는 반복되는 try-catch 블록?
- 18. try/catch 블록 PHP -에 - 소파 예외
- 19. try/catch 블록 (Java) 내에서 예외가 발생했습니다.
- 20. ios @try @catch 블록 @catch에서 반환시 EXC_BAD_ACCESS
- 21. SQL-Server, TSQL, TRY-CATCH 블록
- 22. C# : "using"지시문 및 try/catch 블록
- 23. 예외 처리, 명령문 또는 Try/Catch 블록?
- 24. try-catch 블록 내에서 예외가 throw 됨
- 25. C++에서 try/catch 블록 사용
- 26. Java의 try-catch 블록 - catch 코드의 실행 문
- 27. catch 블록 내에서 try catch 블록을 사용할 수 있습니까?
- 28. try while catch try while catch
- 29. Try-catch catch not exceptions
- 30. () try {} catch {}