tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル RunWorkerCompleted イベントで e.Error が Nothing 以外になるケース
投稿日: 2007/09/14(Fri) 13:17
投稿者楽太郎

環境 : Visual Basic 2005

BackgroundWorker1_RunWorkerCompleted イベントで
e.Error が Nothing でないケースってどのような場合でしょうか?

私はてっきり BackgroundWorker1_DoWork イベント内でエラーが発生した場合に
e.Error にエラー内容がセットされるのかと思っていたのですが・・・

フォーム上にボタンを1つ配置して、下のコードを実行すると
Throw ex で処理が止まってしまいます・・・
かといって、 Throw ex を取り除くと、エラーが発生していても
e.Error は Nothing になります。

e.Error が Nothing 以外になるケースってどのような場合ですか?


Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, _
                        ByVal e As System.EventArgs) Handles Button1.Click
        BackgroundWorker1.RunWorkerAsync()
    End Sub

    Private Sub BackgroundWorker1_DoWork(ByVal sender As Object, _
                        ByVal e As System.ComponentModel.DoWorkEventArgs) _
                        Handles BackgroundWorker1.DoWork
        Try
            ' わざとエラーを発生
            Throw New Exception("手動で発生させたエラー")
        Catch ex As Exception
            Debug.Print(ex.Message)
            Throw ex
        End Try
    End Sub

    Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As Object, _
                        ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) _
                        Handles BackgroundWorker1.RunWorkerCompleted
        If Not (e.Error Is Nothing) Then
            ' ここに入るケースってどういう場合?
            MsgBox("エラーが発生しました。")
        Else
            MsgBox("処理が完了しました")
        End If
    End Sub
End Class

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。