2011-06-25 14 views
0

.NETアプリケーションは、アセンブリ境界外にあるオブジェクトのメソッドを呼び出します。このメソッドが例外をスローしたとき、私はCOMExceptionをキャッチしました。例外クラスと外部COM例外のエラーコードをバインドする方法はありますか?

例外には、ErrorCodeフィールドに特別なコード(-123など)が含まれています。

{//外部オブジェクトを呼び出す }試みるキャッチ(COMExceptionは電子) {// e.ErrorCodeの== -123。 }

COMExceptionの代わりにスローされる例外クラスを定義するのは可能でしょうか?

例えば

[外部エラーのたErrorCode = -123] パブリッククラスMyException:例外。

とコード

上書き換える{オブジェクト 外 //コール} を試してみてください キャッチ(MyException電子) { // ... }

答えて

0

は「例外を定義することがかのうですCOMExceptionの代わりにスローされるクラス? "

いいえ、COMExceptionをキャッチして、カスタム例外クラスにラップして、それを再スローすることができます。

+0

ありがとうございました。 私はこの決定を考慮しましたが、私はデルファイで書かれた多くのサービスを持っています。今私はC#でそれらを使用する必要があります。 デルファイサービスのそれぞれは、すべてのCOM例外をキャッチし、所定のC#例外をスローする個人用のラッパーを必要とします。 delphi-servicesが変更されたり、新しいdelphi-exceptionが追加されると、私はラッパーを変更する必要があります。悲しい。 – pat

関連する問題