[過去ログ] ふらっと C#,C♯,C#(初心者用) Part154 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
487: デフォルトの名無しさん (ワッチョイ 5736-XhrW) [sage] 2022/04/18(月) 17:43:30.83 ID:YFSVkBgS0(1/6) AAS
以下の例のように、プログラムに間違いがなければ絶対に到達しない箇所で例外を投げる場合、
どの例外(InvalidOperationException とか InvalidProgramException とか)を
選ぶべきか、正解のようなものはありますか?
また、特に正解がなければ、皆さんのならどうするかを教えていただけると嬉しいです。
どうぞよろしくお願いいたします。
public static string GuusuuKisuu(int x)
{
int y = x & 1; // y は 0 か 1 にしかならない…はず
switch (y)
{
case 0: return "偶数だよ";
case 1: return "奇数だよ";
default: throw new Exception("プログラムが間違ってるから直してね");
}
}
500: デフォルトの名無しさん (ワッチョイ 5736-XhrW) [sage] 2022/04/18(月) 20:12:51.97 ID:YFSVkBgS0(2/6) AAS
たくさんのアドバイスどうもありがとうございます。
あまり良い例が用意できず申し訳ありません。
501(1): デフォルトの名無しさん (ワッチョイ 5736-XhrW) [sage] 2022/04/18(月) 20:14:01.34 ID:YFSVkBgS0(3/6) AAS
申し訳ありません。続きを書き込みたいのですが、
「レスアンカーがおかしいです」と言うエラーが出てしまっています。
502: デフォルトの名無しさん (ワッチョイ 5736-XhrW) [sage] 2022/04/18(月) 20:15:04.45 ID:YFSVkBgS0(4/6) AAS
488 様 489 様 491 様
確かにおっしゃり通りですね。
ただ、状況によってはやはり例外を投げたくなることもありまして、
それをどうやって説明しようかと考えていたところ 498 様がとてもわかり易く
まとめてくださったので、よければそちらを見ていただけると嬉しいです。
492 様
なるほど!
つまり、おそらく初めからこういう目的で用意されている例外はないだろうということですね。
最初は InvalidProgramException が丁度いいかと考えていたのですが、
詳しいクラスの説明を読むとどうやら別の目的で使われる例外のようですし、
おっしゃるとおり、自分でクラスを作るのが一番のような気がしてきました。
493 様
アドバイスどうもありがとうございます。これも良いアイディアだと感じました。
意味的には一行目だけで十分だけれど、
それだけではコンパイルが通らないから二行目も書こうということですよね。
NotNullIfNotNullAttribute ならぬ ThrowExceptionIfFalseAttribute みたいなものが
Debug.Assert に付けられていて二行目がなくてもコンパイルできたらいいのにな、
なんて妄想してしまいました。
503: デフォルトの名無しさん (ワッチョイ 5736-XhrW) [sage] 2022/04/18(月) 20:16:06.96 ID:YFSVkBgS0(5/6) AAS
エラーの原因がよくわからなかったので、
やむを得ずレスアンカーを使うのを諦めました。
読みにくくて申し訳ありません。
507: デフォルトの名無しさん (ワッチョイ 5736-XhrW) [sage] 2022/04/18(月) 20:39:52.66 ID:YFSVkBgS0(6/6) AAS
>>504 >>505505(2): デフォルトの名無しさん (ブーイモ MMcf-m76R) [sage] 2022/04/18(月) 20:28:51.38 ID:0OwrwjlVM(1/2) AAS
MS自身のコードだと、throw AssertUtil.Unreachable; みたいなのはよくあるよ
Unreachable はプロパティで、UnreachableException みたいなinternalなカスタム例外をnewして返してるだけ
ありがとうございます。とても勉強になります。
やはり、例外を使いたいなら自分で作る、という方針で考えたいと思います。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.039s