Исключение не попадает в try-catch - PullRequest
0 голосов
/ 02 ноября 2019

У меня есть try-catch вокруг строки кода, которая может генерировать исключение, однако, catch не перехватывает его. Я все еще получаю необработанное исключение. Почему это так?

В этом примере у меня уже есть изображение, расположенное по адресу C: \ temp \ дефект.bmp, при попытке сохранить изображение с тем же путем я получаю исключение System.IO.IOExceptionСтрока кода dim imageStream, потому что я неправильно использовал режим CreateNew, так что это должно вызвать исключение, но почему Catch ex в качестве 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 голосов
/ 02 ноября 2019

Я разобрался в проблеме. Я использовал API (для WPFImage), который имел свой собственный класс исключения. У меня был импорт в верхней части файла для его пространства имен, поэтому в моем try-catch это не было System.Exception, а было Exception в пространстве имен API. Я довольно разочарован в компании, которая создала API для того, чтобы иметь свой собственный класс исключений с тем же именем.

Я изменил свой код на: Catch ex as System.Exception

Тогда это сработало иправильно поймали исключения.

...