神秘的InvalidOperationException

时间:2011-04-14 11:57:22

标签: .net

异常类型意味着什么?

“撤销操作遇到的上下文与在相应的Set操作中应用的上下文不同。”

我花了5个多小时试图找出出现异常的地方((

更新

对于错误的信息感到抱歉..我发现了错误..但无法弄清楚这是怎么回事

在主线程创建的工作线程中创建新表单并调用form.showDialog .. 调用form.Close应用程序死后:((

1 个答案:

答案 0 :(得分:0)

异常是一种发送的消息,通知发生了不好的事情。它通常有关于不良情况的额外信息。

这就像是从水面到水面的气泡。如果没有人catch,则会向您显示(此处名称为unhandled exception)。

您应该避免在代码中使用unhandled exception并考虑所有不良情况并为他们做些事情。例如,如果你的程序要在CD上写一些内容并且CD-ROM中没有CD,你应该向用户显示一条消息并告诉他将CD放入CD-ROM中。在你的代码中就是这样的:

try
{
    // Copy file to CD
    // Show message: File Copied successfully
}
catch (Exception ex)
{
    // Something wrong happened: there's no CD in CD-ROM, CD has not enough space...
    // Show message: Cannot copy file!
}

在上面的示例中,ex的类型为Exception,并且包含有关不良情况的一些详细信息。如您所见,在行// Copy file to CD之后,我尝试向用户显示成功消息。这是因为一旦我们在// Copy file to CD行开始失败,程序将从catch部分恢复,因为我们遇到了糟糕的情况并且有一些相关的信息。如果您在上面的示例中未使用try/catch,并在其他代码中使用exception,那么您有机会在unhandled exception成为{{1}}之前获得{{1}}。