@Croners

Почему не отлавливается исключение в параллельном цикле?

В этом коде, при делении на 0, возникает исключение, которое не перехватывает блок Try. Как правильно перехватывать исключения в параллельных потоках?

Imports System.Threading.Tasks

Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        pr()
    End Sub

    Private Sub pr()
        Try
            Dim z As Long
            Parallel.For(0, 2,
                Sub(i)
                    z = 1 / i
                End Sub)
        Catch ex As Exception
            Console.WriteLine(ex.Message)
        End Try
    End Sub

End Class
  • Вопрос задан
  • 125 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Croners Автор вопроса
Это вариант не очень подходит, так как в данном случае точно известно, где может в процедуре произойти исключение, и это место можно заключить в блок Try...Catch. Но если процедура будет сложной, то угадать, где же выскочит исключение - нельзя. Поэтому и хотелось бы перехватывать, как сказать на входе, всё возможные исключения...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы