1
28
一般来说,在新线程中抛出异常时,您不知道起始线程将在哪里——为什么它会等待线程抛出异常? 想想涉及到的堆栈——当抛出异常时,它会向上堆栈,直到到达适当的catch块。新线程与创建线程有一个完全独立的堆栈,因此它永远不会到达创建线程堆栈中的catch块。 编辑:当然,您可以设计您的系统,以便创建线程 做 等待其他事情发生-有点像Windows窗体应用程序中的消息循环。然后,新线程可以捕获异常并向创建线程发送消息,然后创建线程可以处理该异常。不过,这不是正常的设置——你必须全部明确地进行设置。 |
2
2
做假设是个坏主意,尤其是在涉及多个线程的情况下(你知道这句老话)。 为什么? 将 启动线程的代码看到异常了吗?引发异常时,启动线程的代码甚至可能不存在。 |
3
2
在Try/Catch语句中不会捕获正在运行的线程,因为它正在另一个线程中运行。Try/Catch仅适用于当前线程。您需要做的是在线程正在运行的函数中使用try/catch,并有一些方法来管理发生崩溃时会发生什么。 |
4
2
您可能需要使用 EventGeneratingThread wrapper -这将允许您捕获并处理从生成线程的进程中抛出的异常。 |
5
2
试着在你的嫁妆前加上这个
我使用的是后台工作程序,而我循环中的所有try-catch都按照您期望的那样工作。 |
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |
user1700890 · 了解交互式代理Python API中的线程 2 年前 |
AntonBoarf · 为什么要将实例变量指定给局部变量? 2 年前 |
rhymes · 如何让线程操作相同的java列表 2 年前 |