へぼろっぱぁ

脳内容量が少ないTHREE-ONEのための備忘録

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

ニュース

フォクすけぬいぐるみを当ててやる!!
Mozilla Firefox ブラウザ無料ダウンロード
ついでに、みんな FireFox 使えばいいと思うよ。

書庫

日記カテゴリ

Accessory

Community

Private

個人的には好きなんですけどね、ガード句。

しかし、今の私のプロジェクトだと微妙に使いづらい場所がありまして。
つうのもですね、イベントハンドラの開始・終了はログを出すというわけわからん暗黙ルールがあるんですよ。
みたいな。
こういうことされると、ガード句でいきなり return とかできないわけですよ。
bgein があるけど end がない正常ログとかあり得ないじゃないですか。
仕方ないので、事前検証系部分をメソッドに抽出して、if で丸ごとくるんでます。
みたいな感じですわ。
極力インデントを深くしないように考えた苦肉の策です。
しかし昔のソースにはガード句使って早々に return してるソースがあったりするんだな。これが
もう、キーですきーーーーーーーー
話の本質からかなりずれてるので、どこにもトラバはらずにグチっておきます
投稿日時 : 2008年6月6日 0:55

コメント

# re: ガード句・・・ね・・・・ 2008/06/06 1:04 中博俊
finallyだろー

# re: ガード句・・・ね・・・・ 2008/06/06 1:09 かずき
同じくfinallyに一票~
こういうのにusingブロック使うのってありなのかな?
using(var l = new Logger("イベント名")) {
// do something
}
LoggerクラスはIDisposableでコンストラクタで開始のログ、Disposeで終了ログ。
本来の使い方は外れてるかorz

# re: ガード句・・・ね・・・・ 2008/06/06 1:57 中博俊
あとはデリゲート
Execute("mymethod", () => {} );


# re: ガード句・・・ね・・・・ 2008/06/06 7:31 THREE-ONE
>中さん
「finally だと例外発生したときもログ出力されるじゃないですか。」だそーですよ。

>かずきさん
そもそも using 自体が Dispose 漏れの可能性があるというレアケースのため使用禁止だったり・・・はぁ

あ、そして環境は .NET 1.0 です。

# re: ガード句・・・ね・・・・ 2008/06/06 7:58 Jitta
ガードするってことは、…するってのは、そのイベントで走らなければならない処理が走らないようにする、ってことですよね。例外は終了ログ出さないなら、ガード句は「無暗に例外を出さないための仕組み」な訳で、ガード句で弾かれるのは「例外が送出されるのをガードした」とも言えるのでは?

ってことで、ガード句にも終了ログは不要!に一票。

# re: ガード句・・・ね・・・・ 2008/06/06 8:26 NyaRuRu
>そもそも using 自体が Dispose 漏れの可能性があるというレアケースのため使用禁止だったり・・・はぁ

自分で記事を書いておいてなんですが,多分それは完璧を求めすぎな気がします.
using を使っても使わなくても,非同期例外発生時のややこしさは変わらないので,「using を使わないこと」は事態の改善に役立っていないんじゃなかろうかと.

# re: ガード句・・・ね・・・・ 2008/06/06 8:35 NyaRuRu
この辺の記事が原因で using 禁止なんてルールができてしまっているのであれば大変心苦しい話ですので,フォロー記事を書こうかと思います.
http://d.hatena.ne.jp/NyaRuRu/20060605#p1

Post Feedback

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