- - PR -
C#でException.HResultを取得したい
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-10-21 16:58
C#で例外処理をしたときに、Exception.HResultの値を取得したくて
以下のような派生クラスを作り、Exceptionのかわりに使用したところ Exceptionではキャッチしてくれた例外を捕まえてくれなくなりました 下記の実装に問題があるのでしょうか? よろしくお願いします public class ExceptionWithErrorCode : System.Exception { public ExceptionWithErrorCode() { } public int ErrorCode { get { return this.HResult; } } } | ||||||||
|
投稿日時: 2005-10-21 17:35
今まで Exception でキャッチしてくれた例外についてキャッチできないのは当たり前だと思うのですが... Exception の例外ハンドラも追加してください。
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-10-21 18:36
じゃんぬねっとさん、お返事ありがとうございます
そうなんですか。うーん。困りました 教えて頂いたコードの ex2 の HResult はどうすれば取得できるでしょうか? | ||||||||
|
投稿日時: 2005-10-21 18:41
どうしてもってことなら、Reflection を使ってみるとか。
_________________ // 渋木宏明 (Hiroaki SHIBUKI) // http://hidori.jp/ // Microsoft MVP for Visual C# // // @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/ | ||||||||
|
投稿日時: 2005-10-21 18:57
渋木宏明(ひどり)さん、お返事ありがとうございます。
Reflection 使うというのはどういうことでしょうか? .NET Framework 用語集 に reflection 【リフレクション】 アセンブリとそのアセンブリ内で定義される型についての情報を取得し、実行時に型のインスタンスを作成し、呼び出し、アクセスするプロセス。 とありましたが何のことだか(涙。 | ||||||||
|
投稿日時: 2005-10-21 20:32
System.Reflection 名前空間配下のクラスや定義を使用するということです。
| ||||||||
|
投稿日時: 2005-10-22 02:55
渋木宏明(ひどり)さん、お返事ありがとうございます
教えて頂いたソースで、取得できました (じつは何をやっているのかまだわかっていないので、おいおい勉強していきます) ありがとうございました | ||||||||
|
投稿日時: 2005-10-22 04:54
ちなみに、どうして Exception.HResult が必要なんでしょう?
COMException を catch して、COMException.ErrorCode を見れば済んでしまったりはしませんか? |