Try-Catch没有捕获异常

时间:2012-04-17 16:27:36

标签: c# visual-studio visual-studio-2010 c#-4.0 try-catch

我使用所有托管代码在Windows 7 32位计算机上的Visual Studio 10中编写了一个简单的控制台应用程序。它在调试模式下工作正常,但是当我将它部署到另一台机器并运行它时,我收到消息,

[my assembly] has encountered a problem and needs to close.  We are sorry for the inconvenience.

...然后它会生成一个我无法想象有用的神秘错误报告。事情就是这样:异常发生在try-catch语句中,该语句旨在优雅地处理错误;但是,似乎没有抓住异常。

这怎么可能?我该如何解决?

2 个答案:

答案 0 :(得分:2)

从代码中的不同位置抛出异常,或者您没有在catch分支中列出异常的特定类型(或其父类型之一)

“神秘”错误消息实际上旨在帮助您找出:出了什么问题(异常的类型),它出现在哪里(堆栈跟踪)。你应该学习阅读/“decypher”它

答案 1 :(得分:1)

就像阿提拉说的那样,它可能是从另一个地方扔出来的。您应该将类​​型设置为Exception,因为它是一般的,如果错误被抛出到您认为它的位置,那么肯定会在该捕获中结束。一旦理解了问题,您就可以将类型调整为更具体的类型。

除了优雅地处理它之外,首先尝试将错误消息打印到控制台以查看问题所在。

如果它没有被捕获,则不会被try内部抛出,请确保所有相关代码都被包装。