以下代码产生错误
DatagramSocket socket = new DatagramSocket();
java.net.* 包含在顶部
错误是unreported exception java.net.SocketException; must be caught or d
eclared to be thrown
它在使用线程的类中的方法 run() 中。
有任何想法吗?
以下代码产生错误
DatagramSocket socket = new DatagramSocket();
java.net.* 包含在顶部
错误是unreported exception java.net.SocketException; must be caught or d
eclared to be thrown
它在使用线程的类中的方法 run() 中。
有任何想法吗?
我建议你在 try/catch 块中捕获它并记录它,或者将你的 Runnable 更改为一个 Callable<Void> ,它可以抛出一个 excaption。
顺便说一句:我会使用 ExecutorService 而不是普通的线程,因为它允许您回收线程并更轻松地管理它们。
错误消息尽可能清晰。要么放在一个catch
块中:
try {
DatagramSocket socket = new DatagramSocket();
// ...
}
catch (SocketException ex)
{
// ...
}
或者声明您在其中创建套接字的方法可能会抛出SocketException
:
void foo() throws SocketException
{
DatagramSocket socket = new DatagramSocket();
// ...
}
Java 已检查异常,这意味着编译器会为您监视这些事情。我不能说这是语言的一个很好的部分,但它是一个强制性的部分。
好吧,您没有捕捉到可能发生的 SocketException
try {
DatagramSocket socket = new DatagramSocket();
} catch (SocketException e) {
e.printStackTrace();
}