В 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.