线程启动失败的Java异常类

标签 java multithreading sockets

我有一个线程,它在其 run 方法的开头打开一个套接字,然后进入监听循环。我希望 run 方法抛出 RuntimeException ,告诉我线程无法启动。

Java中有这样的异常类型吗?像ThreadStartFailedException之类的东西?

注意:我不想在其构造函数中打开套接字,因为我需要该线程可重新启动,即当我对其调用 interrupt 时,它会优雅地关闭其套接字;如果在同一个实例上重新调用 run,则会重新创建套接字,并且线程将像第一次一样运行。

最佳答案

是的,有一个 RuntimeException class 。但是从 run 方法抛出异常,如果您稍后需要在 run 方法及其相应的类上下文之外捕获它,则需要使用 Callable而不是可运行

Is there such an exception type in Java? Something like ThreadStartFailedException?

不,默认情况下不存在此类异常。从文档中检查 RuntimeException 的子类。如果需要,您可以子类化 RuntimeException

class ThreadStartFailedException extends RuntimeException
{

    public ThreadStartFailedException(String message) {
        super(message);
    }

}

关于线程启动失败的Java异常类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20262858/

相关文章:

java - Android - Java - 在代码中使用的预定义 XML 模板

java - 从 Android Studio 中的 Firebase 数据库读取对象

java - 如何防止关键部分的上下文切换

c++ - Listen 套接字仅在 g++ 中工作,没有 -std=c++11

QT QTcpServer::incomingConnection(qintptr handle) 没有触发?

java - 点击多个播放声音的按钮时出现错误 (1, 19)

java - 如何在 Java 中将字符串 ("0 100 300 200") 转换为 long 数组?

c - C 中的队列套接字连接

java - 当我使用多线程进行更新操作时,数据库端会发生什么?

javascript - 使用 Socket.io 有效发送大数组坐标