我在VB.Net中有一个程序,它从Outlook接收邮件,提取附件并通过查询将附件插入表中。我想将查询/查询放在Try / Catch块中,但不能这样做,因为无法捕获Outlook异常,并且它给了我一个错误,除非我提出一个非常具体的异常,否则我无法理解它。有解决方法吗?
修改
Try
Catch ex As Exception
End Try
异常有下划线,当我将鼠标悬停在它上面时,它说:“Catch无法捕获类型'Microsoft.Office.Interop.Outlook.Exception',因为它不在'System.Exception'中或继承自'System 。例外'”。这会影响我想要放入Try / Catch块的所有其他代码。怎么办?
答案 0 :(得分:4)
好的,我现在看到了问题。
当您编写Exception
时,VB会读取Microsoft.Office.Interop.Outlook.Exception
(可能是因为您的代码文件顶部有Import Microsoft.Office.Interop.Outlook
语句)。
您需要明确告诉VB您的意思是System.Exception
:
Try
...
Catch ex As System.Exception
...
End Try
(由于M.O.I.O.Exception
不是.net异常,而只是一个恰好被称为Exception
的Outlook COM类,因此尝试Catch
是没有意义的。)
答案 1 :(得分:0)
没有“XXX异常无法捕获”这样的事情。它可能有一种你不知道的类型。您应该阅读您使用的库的文档并找到异常的类型。
编辑:回答主题:如果你想捕获除一个之外的所有异常,你应该捕获所有异常并再次抛出该异常。