调用堆栈和捕获错误
“嗨,阿米戈!“我想告诉你一件小事,但很有趣。”“我在听。我喜欢小而有趣的东西。”“嗯,你知道每个 Thread 对象都有一个 run() 方法。你可以使用 start() 方法在单独的线程上执行它。”“是的当然。”“但是现在想象一下这种情况:你启动一个线程来执行一些工作,但是抛出异常并且线程停止运行,因为它不知道该怎么做。你不需要以某种方式知道这个错误吗?”“我同意。我需要以某种方式捕获发生在另一个正在运行的线程上的异常。Java 支持吗?”“你侮辱我,当然是。”“Java 的创建者发明了一个名为 UncaughtExceptionHandler 的特殊接口。下面是如何捕获和处理另一个线程上发生的异常,如果该线程没有捕获它的话:”例子public class DownloadManager { public static void main(String[] args) { Thread thread = newDownloadThread(); thread.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { @Override public void uncaughtException(Thread t, Throwable e) { } }); thread.start(); }“Thread 对象有一