次のコードはエラーを生成しています
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> に変更することをお勧めします。
ところで:スレッドをリサイクルして管理しやすくするため、普通のスレッドではなく 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();
}