2011-04-14 171 views
0

什么意思与异常的类型?神秘InvalidOperationException

“撤消操作遇到的上下文是从什么是在相应的设置操作中施加不同的。”

我花了5个多小时试图找到其中的例外出现((

更新

对不起,misinformation..i发现mistake..but无法弄清楚如何出现这种情况

在主线程中创建工作线程,创建新窗体并调用form.showDialog .. 调用form.Close应用程序后死:((

+1

这将真正帮助,如果你想解释一下其中的例外是从哪里来...你正在使用的技术,代码是什么样子,堆栈跟踪是什么样子等等 – 2011-04-14 11:59:25

+1

如果你花5小时试图找到一个解决方案,你应该花费超过1分钟措辞你的问题。没有人能够帮助你完成你写的内容。给出代码示例并告诉我们你在做什么! – Christian 2011-04-14 11:59:36

+0

我正在使用.net 4.0 framewwork 我无法找到确切的异常出现在哪里因为我只捕获异常'未处理' 没有任何代码行或e.t.c信息 – void 2011-04-14 12:00:03

回答

0

例外是一种消息,通知发生了什么坏事情pened。它通常有关于不好的情况的额外信息。

这就像从水表面下来的气泡。如果没有人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前的机会。

+0

我知道如何使用try/catch语句,但我无法找到可能出现例外情况的代码和平例如,如果我打包运行另一个线程的try/catch代码,并在另一个trhead中抛出异常try/cathc不会帮助我( – void 2011-04-14 12:15:10

+0

)执行错误代码的线程抛出异常如果您需要了解它另一个线程你应该使用一个共享对象,并告诉另一个线程发生了错误。 – Xaqron 2011-04-14 12:18:08