2016-09-22 6 views
2

私は古いVB6アプリケーションをサポートしています。なぜコードがErr.RaiseとError.Raiseの両方を使用しているのだろうと思います。両方とも、各データベース呼び出し後に検証に表示されます。VB6でErr.RaiseとError.Raiseの違い

私はこのアプリケーションをC#に移行していますが、C#の両方の動作を正しく再現するために、これらのステートメントの微妙な違いを理解しようとしています。

私はError.Raiseに関する情報を検索するのにかなりの時間を費やし、何も役に立たなかった。

おかげで、

イヴ

+5

Error.Raiseは組み込まれていませんが、エラーと呼ばれるErrObjectを作成することができます。このエラーは、コード内にある可能性が高いです。 「エラー」を右クリックし、「定義」をクリックして、どこに表示されるかを確認します。 – Marc

+0

定義をクリックすると、VB6ライブラリを参照します。これはVBA.Conversionで定義されています。これは引数としてエラー番号をとる関数であり、与えられたエラー番号のエラーメッセージを返します。たぶん、VB6コンパイラはErr.RaiseによってError.Raiseを単に代用しますか? –

+0

新しい空のVB6プロジェクトを作成した場合、 'Error'という名前のオブジェクトはまったくありません。これはあなたの特定のプロジェクトに導入されたものかもしれません。私はそれの例を見つけ、 'Error'を右クリックして' Definition'を選択し、それがどこにつながるかを見てみましょう。 – DaveInCaz

答えて

2

@Marcは正しかったです。 Error.Raiseは間違っています。

On Error Gotoステートメントのスコープ内で "Error.Raise 1234"を呼び出すと、Err.Number = 424およびErr.Description = "Object required"のエラーブロックに分岐します。

解決策は明白になります。Error.RaiseをErr.Raiseに置き換えてください。

関連する問題