2009-06-10 16 views
0

私は現在、これらの "procErr:"ステートメントがあるレガシーVisual Basicプロジェクトを維持しています。私の推測では、関数を実行している間に何らかのエラーが発生した場合、これを処理するための方法として使用されています。procErrとは何ですか:Visual Basicで使用されていますか?

私はプロジェクトをVB.NETに変換しました。このprocErr構文を使用する代わりに、代わりにTry Catchの中にラップするのが良い方法でしょうか?

答えて

2

私のVBは少し錆びますが、私は 'ProcErr'は予約済みのキーワードではないと考えています。 VBでは、メソッドでエラーが発生したときに実行されるブロック(つまり、プロシージャー、つまり名前)を指定するだけの命名規則です。実際のコードで

、あなたがしてOn Error GoTo ProcErrのような文があり、その後、あなたはprocerrブロックを定義します。

procErr: 
msgbox "an error has happened" 

あなたは他の名前でこれを置き換えることができます。 VB.NETでは実際にtry catchのルーチンに置き換えます:

Try 
// code 
Catch x As Type 
// exceoption handling 
Finally 
End Try 'cleanup code 
+2

Razzie:+1良い答えですが、追加することができます。 。 。 Try Catchによる例外処理では、エラー処理コードが明確なパターンに変換されます。 「VB On Error goto」にはこのようなパターンはありません。エラーハンドラは、メソッド内の任意の位置をGOTOにすることができます。一般に、コーダがVB3-6で完全に合理的に見えるロジックを追加するのを止めるものはありませんが、Vb.Netではそれが誘発されます。あなたは事件ごとにOn Error Gotoのそれぞれを扱う必要があります。レガシーVBからVB.Netへの変換は単純な命題ではありません。運の小道具のベスト:) –

+0

@バイナリ:あなたはもちろん正しいです。単純なtry-catchにVBエラールーチンを変換することはできません。なぜなら、フロー/構造が非常に異なるからです。だから、ケースバイケースでそれぞれを調べる必要があります。つまり、可能であれば、VB.NETに変換するときにできるだけ多くのデフォルトのtry-catchルーチンを使うべきだと私は思っています。一方、On Error Resume Nextをtry {} catch(){}に変換すると、実際の例外処理は行われません。 – Razzie

関連する問題