有没有在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());
}
});
处理程序应该优先捕获所有类型的异常。
答案 0 :(得分:4)
这取决于你想要抓住的东西。如果您只想要C ++异常,请查看使用set_unexpected或set_terminate设置自己的处理程序。如果您想要所有Windows异常,则使用SetUnhandledExceptionFilter指定顶级处理程序。
在大多数情况下,捕获所有Windows异常也会捕获所有C ++异常,但情况并非总是如此,因此您最好尽可能使用这两种方法来捕获。最后一个CRT有些奇怪(见this),这可能意味着并未捕获所有异常。