2 Stimmen

Wie kann ich eine Ausnahme in einem anonymen Thread deklarieren?

InputStream in = ClientSocket.getInputStream();
new Thread()
{
    public void run() {
        while (true)
        {
            int i = in.read();
            handleInput(i);
        }
    }
}.start();

Ich höre mit diesem Code auf neue Daten auf einem Socket und erhalte:

FaceNetChat.java:37: unreported exception java.io.IOException; must be caught or declared to be thrown
                int i = in.read();
                               ^

Wenn ich " throws IOException " nach dem " run() " Ich verstehe:

FaceNetChat.java:34: run() in  cannot implement run() in java.lang.Runnable; overridden method does not throw java.io.IOException
        public void run() throws IOException {
                    ^

Wahrscheinlich ist es etwas Einfaches, aber ich bin ratlos. Wie kann ich das umgehen?

0voto

Dilum Ranatunga Punkte 13094

Sie müssen die Ausnahme behandeln oder als ungeprüfte Ausnahme erneut auslösen.

InputStream in = ClientSocket.getInputStream();
new Thread() {
  public void run() {
    try {
      while (true) {
        int i = in.read();
        handleInput(i);
      }
    } catch (IOException iox) {
      // handle, log or wrap in runtime exception
    }
  }
}.start();

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X