中の技術日誌ブログ

C#とC++/CLIと
VBと.NETとWindowsで戯れる
 

目次

Blog 利用状況

ニュース

自己紹介

東京でソフトウェアエンジニアをやっています。
お仕事大募集中です。
記事執筆や、講師依頼とかでも何でもどうぞ(*^_^*)
似顔絵 MSMVPロゴ
MSMVP Visual C# Since 2004/04-2013/03

記事カテゴリ

書庫

日記カテゴリ

00-整理

01-MSMVP

例外エスカレーション

throwsエスカレーション

J系言語ではきちんとエラー処理していない小さなメソッドに対して、例外モデルでエラー処理させようとすると、throwsのエスカレーションが発生する。

throwsのエスカレーションが発生すると、そのthrowsを呼び出し側でも再スローするように設定して回らないといけない。

C#やVBではthrowsモデルを採用せずに、どのような例外を送出するかはドキュメント任せである。

C#登場当初はthrowsが欲しいという意見も多かったが最近はあまり聞かれません。

ちなみにCheckStyleっていうJavaのコーディング規約チェッカみたいなものでは

http://www003.upp.so-net.ne.jp/kaz-taka/checkstyle/4.1/config_design.html

>throws ステートメントを指定した数(デフォルト = 1)に制限します。
>メソッドがあまりにも多くの異なる例外をスローするよう宣言することは その例外の処理を煩わしくさせ、(Exception) をキャッチするような まずいプログラミングプラクティスにつながってしまいます。

なんてことまで書いてあります。

throwsを1つに制限するのはそのメソッドの中での多様な例外を否定しているわけで、そういう意味でも.NETのライブラリと好対照だ。

#なんせ7つとか例外が出ますよと書いてあるのも普通だし

http://onigiri.s3.xrea.com:8080/csharp/index.php?%5B%5B%BD%A1%B6%B5%CF%C0%C1%E8%2F%A4%CA%A4%BCthrows()%A4%AC%A4%CA%A4%A4%A4%CE%A4%AB%5D%5D

こんなところもある。

ソースとして正しいとか、設計として書くあるべしみたいなものも大事だけど、変更箇所が級数的に増えるという保守の問題も検討すべき。

#んでアドホックに直しちゃうとか(^^;;;;

投稿日時 : 2006年8月29日 18:14

コメントを追加

# re: 例外エスカレーション 2006/08/29 19:35 黒龍

どうしても見つからなかったのでコメント。
C#って戻り値がnullな事を宣言する属性ってありませんでしたっけ?つけて置くとnullチェックなしに使っているコードでwarningが出るという・・・。
どう探しても見つからないので夢の中での話かも・・・。
で、その話を前提として例外も属性で宣言的にできるといいですねという夢の続きのようなコメント^^;

# re: 例外エスカレーション 2025/01/20 16:25 dinosaur game

Help the T-Rex dinosaur make its way across the expansive desert in the famous and acclaimed 2D arcade game Dinosaur Game. Get in on the fun with us right now!

タイトル
名前
URL
コメント