我试图解决一个问题,在我的应用程序我有这个代码
try {
object1.method1();
} catch(Exception ex) {
JOptionPane.showMessageDialog(nulll, "Error: "+ex.getMessage());
}
对象1将执行以下操作:
public void method1() {
//some code...
throw new RuntimeException("Cannot move file");
}
我在我的选项窗格中得到一个垃圾,如下所示:
错误:java.lang.RuntimeException:无法移动文件
但是我使用getMessage而不是toString方法,所以类的名称不应该出现,对吧?
我做错了什么?
我已经尝试了很多例外,甚至是Exception本身.我正在寻求解决这个no而不需要实现我自己的Exception子类
问题解决 – 谢谢大家!
try和catch实际上是在来自SwingWorker的get()方法中调用的,它构造了一个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());
}
}