Cai*_*der 5 eclipse eclipse-rcp
码:
Job job = new Job("Connect to Database") {
@Override
protected IStatus run(IProgressMonitor monitor) {
// ????????????????DB2??????????????
monitor.beginTask("??????????? ...", 100);
try {
Thread.sleep(3000);
database = new Database(cp.getName(), cp.getConnection());
} catch (Exception e) {
e.printStackTrace();
IStatus sqlErrorStatus = new Status(IStatus.ERROR, "amarsoft.dbmp", e.getMessage(), null);
StatusManager.getManager().handle(sqlErrorStatus, StatusManager.SHOW);
}
monitor.done();
return Status.OK_STATUS;
}
};
Run Code Online (Sandbox Code Playgroud)

当用户单击"详细信息"按钮时,如何使其显示异常的堆栈跟踪?
状态对话框的默认详细信息区域不显示异常堆栈跟踪.
如果您有自己的Eclipse 产品,那么可以使用org.eclipse.ui.statusHandlers扩展点自定义状态对话框的详细信息和支持区域.您将需要扩展WorkbenchErrorHandler和覆盖configureStatusDialog(...)方法:
void configureStatusDialog(WorkbenchStatusDialogManager statusDialog) {
statusDialog.enableDefaultSupportArea(true);
statusDialog.setDetailsAreaProvider(new CustomStatusAreaProvider());
}
class CustomStatusAreaProvider extends AbstractStatusAreaProvider {
Control createSupportArea(Composite parent, StatusAdapter statusAdapter) {
//Create and return details area
}
}
Run Code Online (Sandbox Code Playgroud)
由异常传递给Status,而不是null你做供错误日志查看详细信息对话框中的堆栈跟踪.
| 归档时间: |
|
| 查看次数: |
941 次 |
| 最近记录: |