Java线程:Run方法无法引发检查的异常

Java线程:Run方法无法引发检查的异常,第1张

Java线程:Run方法无法引发检查的异常

有人可以解释其背后的原因吗?

是的,因为您抛出的任何异常

run
都会被JVM仔细忽略。因此,将其抛出可能是一个错误(除非您对该线程具有特定的异常处理程序,请参阅有关该文档的文档)。没有理由煽动潜在的错误行为。

或者举个例子。

 class MyThread extends Thread {     public void run() {         throw new RuntimeException();     } }...new MyThread().start();// here thread dies silently with no visible effects at all

编辑

为什么父线程不能从生成的“子”线程“捕获”异常?

@ chaotic3quilibrium 已经在他的评论中指出了为什么不这样做:因为父线程可能已经继续运行。

new MyThread().start(); // launch thread and forget// 1000 lines of pre further...i = i + 1; // would you like exception from child thread to be propagated here?


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5438843.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存