Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果creting a连接失败,我该怎么办?_Java_Exception_Runtime Error - Fatal编程技术网

Java 如果creting a连接失败,我该怎么办?

Java 如果creting a连接失败,我该怎么办?,java,exception,runtime-error,Java,Exception,Runtime Error,我正在使用JMS开发一个web应用程序,目前我有一个具有以下初始化方法的bean: @PostConstruct public void init(){ try { connection.start(); connection = connectionFactory.createConnection(); } catch (JMSException e) { throw new RuntimeException(e); // <

我正在使用JMS开发一个web应用程序,目前我有一个具有以下初始化方法的bean:

@PostConstruct
public void init(){
    try {
        connection.start();
        connection = connectionFactory.createConnection();
    } catch (JMSException e) {
        throw new RuntimeException(e); // <---------- Here
    }
}
@PostConstruct
公共void init(){
试一试{
connection.start();
connection=connectionFactory.createConnection();
}捕获(JME){

抛出新的RuntimeException(e);//将JMSException报告为选中的
异常或
RuntimeException
,这取决于您和您的应用程序设计

通常,如果希望在应用程序中公开API以执行替代操作,则可以在不处理
JMSException
的情况下抛出CheckedException,也可以通过处理并用
CustomException
包装它来抛出CheckedException

正如您所说,如果在这种情况下没有其他选项,并且希望应用程序退出,您可以像您那样抛出一个
RuntimeException
。但是我更喜欢定义一个更有意义的RuntimeException扩展,如
connectionfailedeexception
,如下所示

public class ConnectionFailedException extends RuntimeException {

    private static final long serialVersionUID = -7168847000818691293L;

    public ConnectionFailedException(Throwable cause) {
        super(cause);
    }

    public ConnectionFailedException(String message, Throwable cause) {
        super(message, cause);
    }
}

通常,对于无法恢复的异常,您要做的是终止该序列,并在可能的情况下记录引发该异常的原因。实际上,这听起来很合理。