ぽざうねっと

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

ニュース

さて、今年は何を漬けようか

書庫

日記カテゴリ

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:
コメント: