-2
trygroundでワーカークラスを使用してtry catchステートメント内のメソッドを呼び出すときにtry catchステートメントがメソッドに含まれている場合、例外をキャッチしますか?例外が検出された場所はどこですか? (try/catch)
private void backgroundWorker1_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
{
try
{
Do();
}
catch (Exception ex)
{
System.Windows.MessageBox.Show("Error:" + e.Result + ex.Message);
}
}
そして:
private void Do()
{
try
{
//Do something, open a file etc.
FileStream fs = new FileStream("file.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
}
catch (Exception e)
{
System.Windows.MessageBox.Show("Error:" + e.Result + ex.Message);
}
}
を使って呼び出さ:backgroundWorker1.RunWorkerAsync();
例外は、メソッド内で処理されていることを確認する方法はありますか?バックグラウンドワーカーは壊れませんか?
private void Do()
{
try
{
//Do something, open a file etc.
FileStream fs = new FileStream("file.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
}
catch (Exception e)
{
System.Windows.MessageBox.Show("Error:" + e.Result + ex.Message);
}
}
例外: – Sinatr
'DoWork'関数で例外が処理されていない場合、それは引数の一部として' RunWorkerCompleted'関数に渡されます。 [この関連する質問](http://stackoverflow.com/questions/258662/unhandled-exceptions-in-backgroundworker)を参照してください。 –
ブレークポイントを設定するか、ログに何かを追加して書き出しを確認します。どちらかというと、数秒しかかかりませんでした。 – Servy