Kry*_*ten 4 exception-handling visual-c++
无论如何要在 MFC VC++ 2008 应用程序中捕获所有未捕获的异常?有没有像这样的Java代码:
Thread.currentThread().setUncaughtExceptionHandler(
new Thread.UncaughtExceptionHandler() {
public void uncaughtException(Thread t, Throwable e) {
System.out.println("Oops! We have a exception in Thread '" + t.getName() + "': " + e.toString());
}
});
Run Code Online (Sandbox Code Playgroud)
处理程序最好捕获所有类型的异常。
这取决于你想捕捉什么。如果您只想要 C++ 异常,请查看使用set_unexpected或set_terminate设置您自己的处理程序。如果您想要所有 Windows 异常,那么您可以使用SetUnhandledExceptionFilter来指定顶级处理程序。
在大多数情况下,捕获所有 Windows 异常也应该捕获所有 C++ 异常,但情况并非总是如此,因此您最好同时使用这两种方法来尽可能多地捕获。最后一个 CRT 有一些奇怪的地方(请参阅此),这可能意味着并非所有异常都会被捕获。