В Java, как у меня есть класс, который реализует MouseListener и выдает IOException?

Броски IOException для ввода из файла.

3 ответа

Что -то вроде этого:

import java.awt.event.*;
import java.io.*;
class Foo implements MouseListener {
    void io() throws IOException {
        File file = new File("foo");
        FileReader fileReader = new FileReader(file);
        fileReader.read();
        // ...
    }
    @Override public void mouseClicked(MouseEvent arg0) {
        try {
            io();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
    @Override public void mouseEntered(MouseEvent arg0) {}
    @Override public void mouseExited(MouseEvent arg0) {}
    @Override public void mousePressed(MouseEvent arg0) {}
    @Override public void mouseReleased(MouseEvent arg0) {}
}

Классы не генерируют исключения, методы делают.

public class Foo implements MouseListener {
    public void throwingUp() throws IOException {
        // ... Code that could throw IOE
    }
    // ... MouseListener impl
}

Классы не бросают IOException, методы делают. Ваш класс может реализовать MouseListener, но эти методы (mouseClicked, mousePressed и т. Д.) Не могут генерировать исключения IOException. Вы должны будете обернуть их в RuntimeException (или подкласс). например

   @Override
   public void mouseEntered(MouseEvent e) {
      try {
         methodThatMightThrowAnIOException();
      }
      catch (IOException ioe)
      {
         throw new RuntimeException(ioe);
      }
   }

Другие методы, такие как methodThatMightThrowAnIOException(), может бросить IOException.

Другие вопросы по тегам