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