繁体   English   中英

无法捕获COMException(vb.net)

[英]Can't catch COMException (vb.net)

我使用以下代码访问VSS项:

Dim sItem As String = "$/MyVssProject/InexistentFile.txt"
Dim oItem As SourceSafeTypeLib.VSSItem = Nothing
Try
  oItem = m_oSourceSafe.VSSItem(sItem)
Catch ex As Runtime.InteropServices.COMException
  MsgBox(ex.Message, MsgBoxStyle.Exclamation)
Catch ex As Exception
  MsgBox(ex.Message, MsgBoxStyle.Exclamation)
End Try

我遇到的问题是当我尝试将实例获取到VSSDB中不存在的文件时,从而导致COMException,这基本上不会出现问题(我希望)。 实际上发生了异常,但调试光标不是继续使用catch代码,而是停留在“oItem = m_oSourceSafe.VSSItem(sItem)”行上,显示标题为“COMException越过本机/管理边界”的对话框。

从此处执行不会继续,直到我将sItem的内容更改为现有文件。

为什么异常没有被捕获,我怎样才能实现它?

环境:在WinXP SP3 x86上使用.Net 2.0的VS2010

谢谢伙伴们!

我发现了如何抓住:

在项目的设置中,在“调试”选项卡上,选择“启用非托管代码调试”。 从现在开始,您应该可以聊聊异常。

这样做的缺点是,在单步执行代码时不再可能编辑代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM