私はファイルから読んでみたいと思います。失敗したら、ユーザーに再試行または放棄させてください。これまでのコードは次のようになっています:VB.Netで操作を再試行するにはTry and Catchを使用するにはどうすればよいですか?
私は後藤が好きではありません。醜いです。しかし、私はtryとcatchにまたがるループを作る方法は分かりません。
これを書き込むより良い方法はありますか?
私はファイルから読んでみたいと思います。失敗したら、ユーザーに再試行または放棄させてください。これまでのコードは次のようになっています:VB.Netで操作を再試行するにはTry and Catchを使用するにはどうすればよいですか?
私は後藤が好きではありません。醜いです。しかし、私はtryとcatchにまたがるループを作る方法は分かりません。
これを書き込むより良い方法はありますか?
Dim retry as Boolean = True
While retry
Try
my_stream.Read(buffer, 0, read_len)
retry = False
Catch ex As System.IO.IOException
If MessageBox.Show("try again?") = DialogResult.Retry Then
retry = True
Else
retry = False
Application.Exit() 'just abort, doesn't matter
End If
End Try
End While
Iは、読み出しの結果に応じて、trueまたはfalseを返すと、その方法の外に再試行ロジックを扱う1つの読み出し機能にロジックを分離することになります。
は例
Function performOneRead(buffer) as Bool
Try
my_stream.Read(buffer, 0, read_len)
return true
Catch ex As System.IO.IOException
return false
End Try
End Function
Sub ReadLogics()
Dim ok as Bool
While Not Ok
ok = performOneRead(buffer)
if not ok AndAlso MessageBox.Show("try again?") <> DialogResult.Retry then Application.Exit(1)
End While
end sub
のために私は別の答えを考えた:
Do
Try
my_stream.Read(buffer, 0, read_len)
Exit Do
Catch ex As System.IO.IOException
If MessageBox.Show("try again?") <> DialogResult.Retry Then
Application.Exit() 'just abort, doesn't matter
End If
End Try
Loop
出口はしかし、基本的に変装して後藤です。このようにして、大きなスコープを持つ別の変数は必要ありません。
これはメッセージボックスに「ok」ボタンを表示することだけです。これははいかいいえではないでしょうか? –
+1は主にあなたの野望を取り除くためのものです。 :) – Guffa