タイトル | : RunWorkerCompleted イベントで e.Error が Nothing 以外になるケース |
記事No | : 6310 |
投稿日 | : 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
|