我有一个线程在其run
方法的开头打开一个套接字,之后它进入一个监听循环。我希望run
方法抛出RuntimeException
,告诉我线程无法启动。
Java中是否存在类型这样的异常?像ThreadStartFailedException
?
注意:我不想在其构造函数中打开套接字,因为我需要这个线程可以重启,即当我在其上调用interrupt
时,它会正常关闭它的套接字;如果在同一个实例上重新调用run
,则会重新创建套接字并且线程正在运行,就像它是第一次一样。
答案 0 :(得分:1)
是的,有一个RuntimeException class。但是从run
方法抛出异常,如果您需要稍后在run
方法之外捕获它并且它是相应的类上下文,则需要使用Callable
而不是Runnable
Java中是否存在这样的异常类型?就像是 ThreadStartFailedException?
不,默认情况下不存在此类异常。从文档中检查RuntimeException
的子类。如果需要,您可以继承RuntimeException
。
class ThreadStartFailedException extends RuntimeException
{
public ThreadStartFailedException(String message) {
super(message);
}
}