尝试捕获中未捕获到异常

时间:2019-11-02 15:32:40

标签: wpf vb.net exception try-catch

我在可能产生异常的代码行中进行了try-catch,但是,catch并未捕获该异常。我仍然遇到未处理的异常。为什么会这样?

在此示例中,我已经有一个位于C:\ temp \ defect.bmp的图像,当我尝试使用相同的路径保存图像时,在昏暗的imageStream代码行上得到了System.IO.IOException,因为我错误地使用了CreateNew模式,因此应该抛出一个异常,但是为什么Catch ex as Exception不能捕获它呢?

Class MainWindow

    Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
        Dim image As New WpfImage("C:\TEMP\defect.bmp")

        Try
            Dim imageStream As New IO.FileStream("C:\TEMP\defect.bmp", IO.FileMode.CreateNew)

            image.Save(imageStream, ImageFormat.BMP)

        Catch ex As Exception
            MsgBox("This exception has been caught: " & ex.Message)
        End Try
    End Sub
End Class

1 个答案:

答案 0 :(得分:0)

我发现了问题。我使用的API(用于WPFImage)具有自己的Exception类。我在文件顶部有一个用于其命名空间的导入,因此在我的try-catch中,它不是System.Exception,而是API命名空间中的Exception。我对让API具有自己的同名Exception类的公司感到失望。

我将代码更改为: 捕获为System.Exception

然后它可以正常工作并正确捕获异常。