GJAX IS UNDER CONSTRUCTION! (※日本語ブログ)

Please wait a minute for GJAX/2008

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  171  : 記事  0  : コメント  760  : トラックバック  50

ニュース

今後のスケジュールについて

予定なし

インフォメーション

わんくま同盟メンバ ブログ トップ

ブログタイトル(July 2007~)
GSP.NET GJAX!
【読み方:じーえすぴーどっとねっと/じーじゃっくす】
【サブ:~ A C# programmer dives into ASP.NET! ~】

ASP.NET AJAXと違って、GSP.NET [ghost_shell's (web) pages & .NET]の部分が正式名称、GJAX!の部分が省略形・俗語となっています。

過去のブログタイトル
【表記:ウェブ100】
【読み方:うぇっぶいちまるまる】
【サブ:.Net & Webに てん ぜろ】

書庫

日記カテゴリ

カテゴリ:.Net Framework

こんな例外クラス欲しくありませんか?

FileNotFormattedException

 

私は「作ってくれればいいのにー。」ってだけでなく、

throw new FileNotFormattedException…

と書いては、「そうね。そんなクラス無かったよね。」と思い返すことを何回かしています。

ボケてはいませんよ。分かってはいるけど、せずにはいられないのです。

 

FileNotFormattedExceptionは以下の時に発生します。

ファイルは存在し、取り出すこともできるが、特定の形式になっていない場合。
例えばテキスト形式データで、必須のヘッダが無いなど。

 

.Net FrameworkにFileNotFormattedExceptionなるクラスが無い理由を考えてみました。

1..Net Frameworkを設計する上でそういう状況に陥らないから。

2.「ファイル形式になっていない」は「○○ファイルではない」に詳細化できるため、実は意味が無いから。

 

って、ケーススタディになってねぇ~。

#それよりも肝心な意図が伝わらねぇ~。 OTL

続く(予)

投稿日時 : 2007年8月14日 13:14

コメント

# re: .Net Framework ケーススタディ 例外編1 2007/08/14 13:26 シャノン
BadImageFormatExceptionなんてのならあります。

# re: .Net Framework ケーススタディ 例外編1 2007/08/14 13:46 凪瀬
個人的にはネーミングはIllegalFileFormatExceptionがよいと思ふ

# re: .Net Framework ケーススタディ 例外編1 2007/08/14 15:15 melt
暗号化した XML にスキーマ付けて使えってことですかね……。

# re: .Net Framework ケーススタディ 例外編1 2007/08/14 17:48 ghost_shell
シャノン さん
>BadImageFormatExceptionなんてのならあります。

たしかに「ファイルは存在し、取り出すこともできるが、特定の形式になっていない場合。」ですね。
画像処理を扱うプログラムを作ったことはないですが、"Bad"が付くクラスとして印象に残っています。


凪瀬 さん
>個人的にはネーミングはIllegalFileFormatExceptionがよいと思ふ

私が書いたのは FileNotFoundException が元になっているのは言うまでもありませんね。
コーディング標準(命名規則)からすれば、 IllegalFileFormatException の方が良さそう。
でも Illegal と(クラス名を)打っても、悲しいかなそういったクラスが出てこない。

ちなみに File...Exception を探した後はInvalid...Exceptionを探しました。


meltさん
>暗号化した XML にスキーマ付けて使えってことですかね……。

暗号化したXML?? XMLで読み込もうとすると別の例外(XmlException)が発生する場合は??

# re: .Net Framework ケーススタディ 例外編1 2007/08/14 23:33 melt
XML に XML スキーマ付けて Desirialize すればある程度フォーマットの確認が出来るから、
>1..Net Frameworkを設計する上でそういう状況に陥らないから。
っていうことなのかなぁと思いました。

ちなみにその場合は InvalidOperationException の InnerException に XmlSchemaValidationException ってのが入ってきます。

それを考えると、もう生のバイナリを扱うのは .NET では古いやり方なんじゃないかなぁと思ったりしたわけです。

で、生のバイナリファイルと比べてテキストで見えてしまう XML は暗号化の強度が落ちてしまうのでそうした方がいいのかなぁと思いました。

以上を踏まえて、
>(これからの .NET は)暗号化した XML にスキーマ付けて使えってことですかね……。
というコメントになりました。
わかりにくくてすみません……。

# re: .Net Framework ケーススタディ 例外編1 2007/08/15 7:09 渋木宏明(ひどり)
この場合の Image は画像じゃなくて実行形式のことなんじゃ…>BadImage

「特定の形式」はアプリマターなので、クラスライブラリでは定義してないんでは?

「「特定の形式」であるかどうかを判別する「汎用のコード/クラス」」が存在し得ないので、定義の仕様がないっちゅーか。

単に例外クラスが無くて困るって話なら、作ってしまえばよいのではなくて?



# re: .Net Framework ケーススタディ 例外編1 2007/08/15 10:21 ghost_shell
melt さん
>わかりにくくてすみません……。

こちらもうまく書けていなくてすみません。


渋木宏明(ひどり) さん
>この場合の Image は画像じゃなくて実行形式のことなんじゃ…>BadImage

ご指摘ありがとうございます。「そうでした。」と言いたい所ですが、普通に間違えて覚えていました。(反省)

>「特定の形式」はアプリマターなので、クラスライブラリでは定義してないんでは?
>「「特定の形式」であるかどうかを判別する「汎用のコード/クラス」」が存在し得ないので、定義の仕様がないっちゅーか。
>単に例外クラスが無くて困るって話なら、作ってしまえばよいのではなくて?

(そうですね。)たぶん例外に対する私の考え方が普通と違うのでしょうね。
「開発者(=.Net Framework利用者)のためにいろんな例外を提案・定義してくれてもいいじゃない。」という主張が根底にあります。

今回は呼び出し側で例外によって対処が異なるので「型」が重要になってきます。同一プロジェクト内だから例外クラスを定義しても影響は出ないのですが、こうした場面に遭遇したことがない事もあって、例外クラスを作るのには消極的です。

例外の利用法についてはまた近いうちに取り上げます。

# 色付き置換 (RichTextBox) 2007/08/15 14:34 "ウェブ100" は "GSP.NET GJAX!"に変わり
色付き置換 (RichTextBox)

Post Feedback

タイトル
名前
Url:
コメント: