コンストラクタで例外を出すのが妥当なら出すべきだ
しかし、例外を出すような責務は得てしてファクトリやリポジトリなど外部のクラスが担うことが多い傾向にある
なので正確に言うと、オブジェクトの生成という責務を分離してない汚いプログラムはダメだ、なんだけど
それが誤って拡散した結果、コンストラクタで例外を出すプログラムはダメだ、に拡大解釈されてしまったのだろう
// コレは生成責務が分離されてないからダメだ
class Hoge {
public Hoge(int id) {
var dto = DB.FindHoge(id); // 例外なげる
m_id = id;
m_name = dto.name;
}
// コレは責務が分離されてるからOK
class HogeRepository {
public Hoge Find(int id) {
var dto = m_db.FindHoge(id); // 例外なげる
return new Hoge(id, dto.name); // 実装次第で投げたり投げなかったり
}
// コレもOK 例外投げるが責務としては妥当
class Hoge {
public Hoge(int id, string name) {
if (id < 0) throw new BadHogeFormat("id");
if (UTIL.NotMatch(@"^H\d{8}$", name)) throw new BadHogeFormat("name");
m_id = id;
m_name = name;
}
ふらっと C#,C♯,C#(初心者用) Part142
■ このスレッドは過去ログ倉庫に格納されています
537デフォルトの名無しさん (アウアウエー Sa13-OsmV)
2019/04/27(土) 12:22:00.72ID:yNGf8etVa■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「排外主義が日本全体で跋扈」村井嘉浩宮城県知事−外国ルーツの女子児童へのいじめで [蚤の市★]
- 【テレビ】20代で7割、30代で6割が「見ていない」 衝撃の調査結果から考える「若者のテレビ離れ」本当の理由 [冬月記者★]
- 【サッカーW杯】 観客285万人に到達 1試合平均は6万5000人 過去最多を大幅更新ペース [阿弥陀ヶ峰★]
- クールジャパン機構、累積損失500億円超 政府が廃止など検討へ ★2 [ぐれ★]
- 【アニメ】『日本の最強アニソンBEST100』 1位はまたもや『残酷な天使のテーゼ』… 視聴者は「出来レース」「見飽きた」の声 [冬月記者★]
- AKB48契約解除の花田藍衣、動画で悲痛な訴え「運営から性的な質問をされ…峯岸さんのように坊主にして誠意を見せろと言われ坊主に」★5 [冬月記者★]
- 【悲報】普通の日本人「自動運転バスが全国で不具合ってほんとは中国製なんでしょ」ー>日本資本の企業でした [153736977]
- 「安倍晋三損壊罪」にありがちなこと [163661708]
- 【試される高市】JR北海道「特急列車の自由席廃止したら利用者激減した🥺」 [616817505]
- 【文春】高市、暴かれた本性。木下秘書「文春は中国から毎週一千万円もらっている」自民党内から総スカンなど🤓 [359965264]
- 塩粘の靴ダサくねー?👊😅👊🏡👞
- 【悲報】高市早苗、ぶら下がり会見の定義を変えてくる [834922174]