mil*_*ski 7 c# exception winforms
我正在尝试这样做:
我正在创建另一个表单,它的 FormClosed 方法会抛出一个异常,该异常应该由主表单捕获。
主要形式:
try
{
frmOptions frm = new frmOptions();
frm.ShowDialog();
}
catch(Exception)
{
MessageBox.Show("Exception caught.");
}
Run Code Online (Sandbox Code Playgroud)
选项:
private void frmOptions_FormClosed(object sender, FormClosedEventArgs e)
{
throw new Exception();
}
Run Code Online (Sandbox Code Playgroud)
调试器在出现异常时停止并显示以下消息:
用户代码未处理异常
为什么?我正在捕获创建它的对象的所有者的异常。有人有主意吗?
我认为这行不通,新表单没有在上面代码的上下文中运行,它只是由它启动。如果您检查堆栈跟踪中是否有抛出的异常,您不应该在其中看到上面的代码,因此它无法捕获异常。
更新:我刚刚创建了一个测试项目并尝试了它。堆栈跟踪对原始形式一无所知。如果您想捕获未处理的异常,您可能需要查看此问题Unhandled Exception Handler in .NET 1.1
| 归档时间: |
|
| 查看次数: |
3557 次 |
| 最近记录: |