【发布时间】:2011-04-25 20:43:11
【问题描述】:
我希望在 Swing 应用程序中以有意义的方式处理异常。
以下内容位于actionPerformed 方法中。 UiUtils#showError 显示一个带有按钮的 JOptionPane,该按钮显示/隐藏堆栈跟踪。 ApplicationException 是一个自定义类,用于将低级异常转换为用户可以理解的内容。
一个问题是,如果用户没有在此代码之前的JFileChooser 中选择文件,我不确定如何处理向上传播的NullPointerException。 exportData 方法有目的地检查条目是否为 null,因此不进行文件处理。
此外,包装低级别 Exception (例如来自数据层)似乎是一个好方法。我想修改ApplicationException 以保留一个实例,而不是在showError 方法中这样做。
最后,有一件事情让我感到困扰,那就是可能同时发生一些异常。我不知道如何处理这个问题,所以我愿意接受任何建议。
try {
dataService.exportData(list, selectedFile);
} catch (IOException e) {
UiUtils.showError(new ApplicationException("Input/Ouput error"), e );
} finally {
if( list == null){
UiUtils.showError(new ApplicationException("No data to export"), null );
}
if( selectedFile == null ){
UiUtils.showError(new ApplicationException("No file selected"), null );
}
}
【问题讨论】:
标签: java swing exception-handling