|
|
1
186
使用A
|
|
|
2
36
这是因为异常是线程的局部异常,而您的主线程实际上没有看到
如果要了解这些未捕获的异常,可以尝试以下操作:
可以找到有关未捕获异常处理的更多信息 here . |
|
|
3
36
这解释了取决于是否发生异常的线程的状态转换:
|
|
|
4
17
极有可能;
但是,假设您确实需要处理来自另一个子线程的异常。我会使用这样的ExecutorService:
印刷品
|
|
|
5
5
|
|
|
6
3
使用
|
|
|
7
2
目前你只抓到
由于线程前发生了很多变化,所以使用高级Java API。
首选高级java.util.concurrent
API
用于多线程
您可以自定义 ThreadPoolExecutor 处理异常。 Oracle文档页面中的示例: 重写
示例代码:
用途:
我在上面的代码之上添加了一个构造函数,如下所示:
您可以更改此构造函数以满足您对线程数的要求。
|
|
|
8
2
我也面临同样的问题…几乎没有解决方案(仅用于实现而不是匿名对象)…我们可以将类级异常对象声明为空…然后在catch块内对run方法进行初始化…如果run方法中有错误,此变量将不为空。然后我们可以对这个特定的变量进行空检查,如果它不是空的,那么线程执行中就出现了异常。
在join()之后调用checkForException()。 |
|
|
9
1
您是否使用了setDefaultUncaughtExceptionHandler()和类似的线程类方法?来自API:“通过设置默认的未捕获异常处理程序,应用程序可以更改那些线程处理未捕获异常的方式(例如登录到特定设备或文件),这些线程将已经接受系统提供的任何“默认”行为。” 你可能会在那里找到问题的答案…祝你好运!-) |
|
|
10
0
扩展几乎总是错误的
多线程规则1:扩展
|
|
|
11
0
如果在启动线程的类中实现thread.uncaughtexceptionhandler,则可以设置然后重新引发异常:
这将导致以下输出:
|
|
|
12
0
线程中的异常处理:默认情况下,run()方法不会引发任何异常,因此必须捕获run方法中检查的所有异常,并仅在其中进行处理,对于运行时异常,我们可以使用uncaughtexceptionhandler。UncaughtExceptionHandler是Java提供的接口,用于处理线程运行方法中的异常。因此,我们可以实现这个接口,并使用setUncaughtExceptionHandler()方法将实现类设置回线程对象。但在调用tread上的start()之前必须设置这个处理程序。 如果我们不设置uncaughtexceptionhandler,那么线程线程组将充当一个处理程序。
|
|
|
13
0
我的RxJava解决方案:
|
|
|
14
-5
你不能这样做,因为这不太合理。如果你没有打电话
|
|
|
user107586 · 如何处理等待句柄不会导致无限循环? 1 年前 |
|
|
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 1 年前 |
|
|
BenjiFB · C#内存缓存:在一次操作中追加到列表? 1 年前 |
|
|
András Takács · Python多线程问题 1 年前 |
|
|
András Takács · Python多线程错误 1 年前 |