我使用所有托管代码在Windows 7 32位计算机上的Visual Studio 10中编写了一个简单的控制台应用程序。它在调试模式下工作正常,但是当我将它部署到另一台机器并运行它时,我收到消息,
[my assembly] has encountered a problem and needs to close. We are sorry for the inconvenience.
...然后它会生成一个我无法想象有用的神秘错误报告。事情就是这样:异常发生在try-catch语句中,该语句旨在优雅地处理错误;但是,似乎没有抓住异常。
这怎么可能?我该如何解决?
答案 0 :(得分:2)
从代码中的不同位置抛出异常,或者您没有在catch分支中列出异常的特定类型(或其父类型之一)
“神秘”错误消息实际上旨在帮助您找出:出了什么问题(异常的类型),它出现在哪里(堆栈跟踪)。你应该学习阅读/“decypher”它
答案 1 :(得分:1)
就像阿提拉说的那样,它可能是从另一个地方扔出来的。您应该将类型设置为Exception
,因为它是一般的,如果错误被抛出到您认为它的位置,那么肯定会在该捕获中结束。一旦理解了问题,您就可以将类型调整为更具体的类型。
除了优雅地处理它之外,首先尝试将错误消息打印到控制台以查看问题所在。
如果它没有被捕获,则不会被try
内部抛出,请确保所有相关代码都被包装。