Я пытаюсь исправить проблему, в моем приложении у меня есть этот код
try {
object1.method1();
} catch(Exception ex) {
JOptionPane.showMessageDialog(nulll, "Error: "+ex.getMessage());
}
и объект1 будет делать что-то вроде этого:
public void method1() {
//some code...
throw new RuntimeException("Cannot move file");
}
Я получаю messsage в моей панели параметров следующим образом:
Error: java.lang.RuntimeException: Cannot move file
но я использовал метод getMessage
, а не toString
, поэтому имя класса не должно появляться, правильно?
Что я делаю неправильно?
Я уже пытался использовать множество исключений, даже Exception
. Я ищу, чтобы решить эту проблему без необходимости реализации моего собственного подкласса Exception
ПРОБЛЕМА РЕШЕНА - спасибо всем!
Try и catch фактически вызывались в методе get() из SwingWorker, который создает ExecutionException
с моим исключением, выведенным из doInBackground()
Я исправил это:
@Override
protected void done() {
try {
Object u = (Object) get();
//do whatever u want
} catch(ExecutionException ex) {
JOptionPane.showMessageDialog(null, "Error: "+ex.getCause().getMessage());
} catch(Exception ex) {
JOptionPane.showMessageDialog(null, "Error: "+ex.getMessage());
}
}