创建连接失败怎么办?

What should I do if the creting a connection failed?

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

@PostConstruct
public void init(){
    try {
        connection.start();
        connection = connectionFactory.createConnection();
    } catch (JMSException e) {
        throw new RuntimeException(e); // <---------- Here
    }
}

JMSException 是一个已检查的异常。因为,如果无法启动连接,我的应用程序将无法恢复,我抛出 RuntimeException。但我不确定。也许我应该扔一些 Error 来强制 JVM 终止。

将 JMSException 报告为已检查 ExceptionRuntimeException 取决于您和您的应用程序设计。

一般来说,如果您想在应用程序中公开一个 API 以采取替代操作,则可以在不处理 JMSException 的情况下抛出 CheckedException 或通过处理并用 CustomException

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

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);
    }
}