Code:
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;
}
};
当用户单击“详细信息”按钮时,如何使其显示异常的堆栈跟踪?
状态对话框的默认详细信息区域not显示异常堆栈跟踪。
如果你有自己的 Eclipseproduct http://help.eclipse.org/indigo/topic/org.eclipse.pde.doc.user/concepts/product.htm然后您可以使用自定义状态对话框的详细信息和支持区域org.eclipse.ui.statusHandlers http://help.eclipse.org/indigo/topic/org.eclipse.platform.doc.isv/reference/extension-points/org_eclipse_ui_statusHandlers.html扩展点。您将需要延长WorkbenchErrorHandler http://help.eclipse.org/indigo/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/ui/statushandlers/WorkbenchErrorHandler.html并覆盖configureStatusDialog(...)
method:
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
}
}
By 传递异常 to Status
代替null
您使堆栈跟踪可用于错误日志视图的详细信息对话框。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)