コンストラクタでの例外はあり?なし?

27
前へ 1 ・・ 3 4
若年寄(もう若くない) @kikairoya

GCだってパフォーマンス・フットプリント上のペナルティ以外にも問題点はあるんですよ?便利で通常使用されるべき技術だけれど、常に最善ではない。

2010-09-29 12:31:51
なぎせ ゆうき @nagise

usingは2つリソースがあるとそれだけで使いにくくない?まあ、自己責任でtry-finally書いてclose()とかに比べればよほどマシだけどさ

2010-09-29 12:32:22
ぐるぐる系SQL @bleis

@nagise usingは中で例外処理させると果てしなく微妙ですね。結局ネストが深くなるので・・・

2010-09-29 12:33:15
七誌 @7shi

@nagise 一応そういうケースも考慮はされていて、usingを連ねてもインデントは深くならないです。

2010-09-29 12:39:07
なぎせ ゆうき @nagise

usingのアイデアはシンプルでそう悪いとも思わないけどね。ブロックでスコープを定義できるならそれでいいやってのはあるでしょ

2010-09-29 12:40:14
なぎせ ゆうき @nagise

@7shi 問題になると思ってるのは、JavaのStream系のようなデコレーションパターンとかですね。リソースを1つめのStreamのコンストラクタに渡す、そのStreamをデコレーションされたStreamのコンストラクタに渡す…とやって最後に逆順にclose()を呼ぶという

2010-09-29 12:42:34
++C++; // 管理人: 岩永 @ufcpp

@nagise using(a) using (b) { ... } と書くとき、VSの自動整形でインデント2重に下げられないのがせめてもの救いだと思っています。

2010-09-29 12:43:30
七誌 @7shi

@nagise 問題ないと思います。 using(var fs = new FileStream("abc.txt", FileMode.Open)) using(var sw = new StreamWriter(fs)) { sw.WriteLine("abc"); }

2010-09-29 12:46:53
くっくっkura 🇯🇵🦀 @PG_kura

複数の関心を扱う記述を、スコープ深度がシリアルにしか変化させられない環境で行う以上、そもそも正しくなんて書けないコトは折り込み済みじゃないのかなぁ(不定期)

2010-09-29 12:52:43
otf @otf

コンストラクタの問題はオブジェクト指向・例外・リソース管理の問題が絡み合ってて頭がこんがらがる。ブログに考えをまとめてみよう・・・。

2010-09-29 13:01:22
Shinji Kono @shinji_kono

Java/C# ならリークがないから、コンストラクタで例外投げて良いってのには、やっぱり賛成出来ないな。初期化別に呼び出すのめんどくさいってのは状況による。

2010-09-29 13:01:58
前へ 1 ・・ 3 4