考虑以下代码:
public class A
{
static final List<Integer> list = new ArrayList<>();
}
上面的代码看起来工作正常。但是,当我使用以下内容时:
public class A
{
static final ServerSocket ss = new ServerSocket(6666);
}
在这里,我看到一个未处理的 IOException 类型的异常。 我尝试了 try-catch block 和 throws 关键字。 我无法通过使用上述两个来解决这个问题。它们可能起作用,但不知道如何起作用。有什么办法可以处理这个异常吗? 目前使用 JDK 7。
最佳答案
验证方法
您可以使用静态私有(private)方法创建一个ServerSocket
,在该方法中您可以处理异常并执行您想要的操作。
public class A
static final ServerSocket ss = createServerSocket();
private static ServerSocket createServerSocket() {
try {
return new ServerSocket(6666);
} catch (IOException e) {
throw new RuntimeException();
}
}
}
静态 block
另一种方法是使用静态 block 。那么您的代码可能如下所示。
public class A {
static final ServerSocket ss;
static {
try {
ss = new ServerSocket(6666);
} catch (IOException e) {
throw new RuntimeException();
}
}
}
关于java - java中如何处理方法体外部的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34976198/