大多数调试器都可以设置为在每次抛出异常时暂停程序(无论是任何异常还是没有处理程序的异常),以便您可以观察调用堆栈。此外,如果您的代码只抛出您控制的类的异常您可以在这些类的构造函数中放置用于转储调用堆栈的代码。