异常是否可以逃避try catch块?

时间:2015-07-23 09:33:02

标签: c# com sap

美好的一天,

在SAP DI-API集成中,我从COM对象(SAP COM对象)接收到最奇怪的行为。

这是我第一次体验这个(和任何)开发,我可以看到一个COM对象未能成为" Caught"在try catch代码块中。

同样,观察到的行为是非常零星的。以下是发生这种情况的片段。

myusernameis

我在代码周围添加了一些内容以尝试支持原因但是,在开发Web项目时,Webdav40服务器应用程序(在Visual Studio 2010中调试时托管您的Web项目)只要在Children对象上崩溃在for循环中访问枚举。

根据我的经验,在QA pahses中从未发生过这个对象,现在只表现出这种行为。完全跳过try catch块并停止执行。

有没有人经历过这样的事件?

提前谢谢。

3 个答案:

答案 0 :(得分:0)

只是一个猜测,但添加另一个catch子句

if

并订阅AppDomain.UnhandledException。也许你从那里得到了一个clou。

答案 1 :(得分:0)

如果oGenData为空,则会抓住NullReferenceException

并且此块将抛出InvalidOperationException

foreach (var line in Children)
      if (line != null) Children.Remove(0);    

catch (Exception ex)catch已经变得相同。

并且不,除了StackoverFlowException

之外,不可能逃避try / catch

答案 2 :(得分:0)

只需看一下代码:

if (line != null) Children.Remove(0);   

我认为这是错误的。使用它进行循环时,无法修改集合。 (枚举)。

可能在您的质量检查中,您没有任何"孩子"对象(子项数= 0)

这会失败的其他原因是当有大量子对象和内存溢出时。