Exception handling 如何处理sparkjava端口绑定中的错误

Exception handling 如何处理sparkjava端口绑定中的错误,exception-handling,spark-java,Exception Handling,Spark Java,我使用sparkjava作为嵌入式REST服务器。我已经让用户可以配置端口号,但是我想处理用户指定了一个已经在使用的端口的情况 本文档的这一部分仅涉及搬运路线 当使用已在使用或无效的端口调用port()时,是否有任何方法来处理发生的错误 我目前的不雅解决方案是在开始使用Spark的类之前检查服务器套接字: try { ServerSocket socket = new ServerSocket(prefs.getListenPort()); socket

我使用sparkjava作为嵌入式REST服务器。我已经让用户可以配置端口号,但是我想处理用户指定了一个已经在使用的端口的情况

本文档的这一部分仅涉及搬运路线

当使用已在使用或无效的端口调用port()时,是否有任何方法来处理发生的错误

我目前的不雅解决方案是在开始使用Spark的类之前检查服务器套接字:

    try {
        ServerSocket socket = new ServerSocket(prefs.getListenPort());

        socket.close();

        MyListener listener = new MyListener(sightingQueue, prefs.getListenPort());
    } catch (Exception e) {
        // port is not valid
    }

根据我的测试,
port()
在已打开的端口上调用时不会引发任何异常。它只是终止程序。因此,我想您的方法是正确的,无法找到任何固有的方法。

使用Spark 2.6.0,您可以指定InitExceptionHandler:

initExceptionHandler((e) -> System.out.println("Uh-oh"));
您可以测试一个候选版本:

<dependency>
    <groupId>com.sparkjava</groupId>
    <artifactId>spark-core</artifactId>
    <version>2.6.0.RC0</version>
</dependency>`

com.sparkjava
火花芯
2.6.0.RC0
`