Catch无法捕获类型'Microsoft.Office.Interop.Outlook.Exception'

时间:2011-03-25 06:44:50

标签: vb.net exception outlook

我在VB.Net中有一个程序,它从Outlook接收邮件,提取附件并通过查询将附件插入表中。我想将查询/查询放在Try / Catch块中,但不能这样做,因为无法捕获Outlook异常,并且它给了我一个错误,除非我提出一个非常具体的异常,否则我无法理解它。有解决方法吗?

修改

    Try

    Catch ex As Exception

    End Try

异常有下划线,当我将鼠标悬停在它上面时,它说:“Catch无法捕获类型'Microsoft.Office.Interop.Outlook.Exception',因为它不在'System.Exception'中或继承自'System 。例外'”。这会影响我想要放入Try / Catch块的所有其他代码。怎么办?

2 个答案:

答案 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异常无法捕获”这样的事情。它可能有一种你不知道的类型。您应该阅读您使用的库的文档并找到异常的类型。

编辑:回答主题:如果你想捕获除一个之外的所有异常,你应该捕获所有异常并再次抛出该异常。