这是一个代码片段
private void viewscriptJButtonActionPerformed(ActionEvent evt){
try{
for (int j = 0; j <= i; j++) {
scriptPane.setText(queryList.get(j).toString() + "\n");
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(this,"error:\n"+e.getMessage().toString() + "\n" + e.getCause().toString() ,"Error",JOptionPane.ERROR_MESSAGE);
}
}
catch块中的代码始终给出
NullPointerException
,这只是一个参考。每当需要捕获异常时,每个按钮单击事件都会发生此问题。任何帮助。
最佳答案
您会发现,当异常原因本身是Exception#getCause()时,返回null
,因此您的e.getCause().toString()
将抛出NullPointerException。将它们链接在一起时,通常使用getCause方法查找根异常。
printStackTrace()将打印出异常的整个堆栈跟踪,从而使调试起来更容易,但是要解决此错误,只需将JOptionPane语句更改为:
JOptionPane.showMessageDialog(this,"error:\n"+e.getMessage().toString(),"Error",JOptionPane.ERROR_MESSAGE);
另外,您可能想查看this。