[過去ログ] ふらっと C#,C♯,C#(初心者用) Part154 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
482: (ワッチョイ e201-Uyzu) 2022/04/15(金)13:37 ID:1joR/OE70(1) AAS
>>481
画像リンク

483: (アウアウウー Sabb-55Lb) 2022/04/15(金)18:49 ID:ZZd0jnz9a(1) AAS
おまえら・・・GJ!
484
(2): (ワッチョイ 1fbd-DvUi) 2022/04/17(日)12:25 ID:D0SaeSYI0(1) AAS
フォームアプリ作成が主体として、GW本でも読もうと思うんだけどおすすめの本ありますか?
485: (ワッチョイ 9779-skhS) 2022/04/17(日)14:36 ID:HNDmidds0(1) AAS
ない
486: (ワッチョイ 97ad-HCi4) 2022/04/17(日)18:32 ID:3icLqeK70(1) AAS
>>484
作りたいアプリを考えて実装しながら勉強が捗る
487: (ワッチョイ 5736-XhrW) 2022/04/18(月)17:43 ID:YFSVkBgS0(1/6) AA×

488: (ワッチョイ 9fad-29Va) 2022/04/18(月)18:33 ID:U6PNIZM80(1/3) AAS
そもそも投げない
デバッグ目的なら例外じゃなくてその時点でメッセージボックス使って表示させるし
例外の場合、投げた例外メッセージが必ずしもユーザ(この場合はデバッグしている人)に届くとは限らないと思うし
489: (ワッチョイ 3702-2+F3) 2022/04/18(月)18:45 ID:CqNrq1/C0(1/3) AAS
そもそもswitchの必要ある?三項演算子で十分では
490: (ワッチョイ 9fad-29Va) 2022/04/18(月)18:52 ID:U6PNIZM80(2/3) AAS
いやwそこは例と言っているから重要ではない気がするがw
例えが悪いってのはわかるけどさw
491
(1): (ワッチョイ 3702-2+F3) 2022/04/18(月)19:06 ID:CqNrq1/C0(2/3) AAS
絶対に到達しないって判りきってるなら、別にロジック入れんでいいんじゃないの?
その例だとdefaultを奇数だよにしてもええし
492: (ワッチョイ ffbb-KI6G) 2022/04/18(月)19:08 ID:8tbUw4/P0(1) AAS
正解はわからんけど俺ならException継承してそれ専用のクラス作るな
ぶっちゃけ既存のほにゃらかExceptionは使い所合ってるかよく分からんもの多くて困ることあるし
493: (アウアウウー Sa1b-MZ5k) 2022/04/18(月)19:09 ID:OZ/Iewlqa(1/2) AAS
この二行だな
debug.assert(false);
throw new exception();
494
(1): (ワッチョイ 7f2d-XhrW) 2022/04/18(月)19:12 ID:0xI2lblg0(1) AAS
>>491
もう少し質問者の意図を読もうよ…
495
(1): (ワッチョイ 3702-2+F3) 2022/04/18(月)19:14 ID:CqNrq1/C0(3/3) AAS
>>494
エスパーじゃないし、知らんがな
> また、特に正解がなければ、皆さんのならどうするかを教えていただけると嬉しいです。
て書いてあるし、ワイならこうするっての書いたから別にええやろ
496: (アウアウウー Sa1b-MZ5k) 2022/04/18(月)19:26 ID:OZ/Iewlqa(2/2) AAS
www
497: (ブーイモ MMbb-3xp7) 2022/04/18(月)19:31 ID:QSalzxoDM(1) AAS
>>495
おバカ自慢要らない
498: (ワッチョイ 9fad-29Va) 2022/04/18(月)19:56 ID:U6PNIZM80(3/3) AAS
上の例のようにわかりきっているコードはまあそうなんだけど“例”と言うようにわかりやすく示しているに過ぎず
極論を言えば、自分で見返してみても何このカオスな複雑怪奇でスパゲッティなコードがあってfuncの戻り値(Result)が0〜10の偶数値のみのはずだけど
funcが呼び出すfunc1からfunc10のどこかに不具合があって負数や奇数、または11以上がResultに入ってしまう可能性を否定することができない場合
とか
499: (ワッチョイ 9779-skhS) 2022/04/18(月)20:04 ID:TPGSz3ry0(1) AAS
funcXメソッドから呼ばれているメソッドはツリー状になっており
そのメソッド総数は2586個で
全部で12566個の例外を発生させうる
すごいでしょ?
500: (ワッチョイ 5736-XhrW) 2022/04/18(月)20:12 ID:YFSVkBgS0(2/6) AAS
たくさんのアドバイスどうもありがとうございます。
あまり良い例が用意できず申し訳ありません。
501
(1): (ワッチョイ 5736-XhrW) 2022/04/18(月)20:14 ID:YFSVkBgS0(3/6) AAS
申し訳ありません。続きを書き込みたいのですが、
「レスアンカーがおかしいです」と言うエラーが出てしまっています。
502: (ワッチョイ 5736-XhrW) 2022/04/18(月)20:15 ID:YFSVkBgS0(4/6) AAS
488 様 489 様 491 様
確かにおっしゃり通りですね。
ただ、状況によってはやはり例外を投げたくなることもありまして、
それをどうやって説明しようかと考えていたところ 498 様がとてもわかり易く
まとめてくださったので、よければそちらを見ていただけると嬉しいです。

492 様
なるほど!
つまり、おそらく初めからこういう目的で用意されている例外はないだろうということですね。
最初は InvalidProgramException が丁度いいかと考えていたのですが、
詳しいクラスの説明を読むとどうやら別の目的で使われる例外のようですし、
おっしゃるとおり、自分でクラスを作るのが一番のような気がしてきました。

493 様
アドバイスどうもありがとうございます。これも良いアイディアだと感じました。
意味的には一行目だけで十分だけれど、
それだけではコンパイルが通らないから二行目も書こうということですよね。
NotNullIfNotNullAttribute ならぬ ThrowExceptionIfFalseAttribute みたいなものが
Debug.Assert に付けられていて二行目がなくてもコンパイルできたらいいのにな、
なんて妄想してしまいました。
503: (ワッチョイ 5736-XhrW) 2022/04/18(月)20:16 ID:YFSVkBgS0(5/6) AAS
エラーの原因がよくわからなかったので、
やむを得ずレスアンカーを使うのを諦めました。
読みにくくて申し訳ありません。
504
(1): (ワッチョイ 9f01-0UVf) 2022/04/18(月)20:25 ID:wKhqv1yX0(1/2) AAS
まあこの手の話はあちらでも挙げられてて結局しっくりくる例外はないってことになってる
外部リンク:stackoverflow.com
MS的には System.Diagnostics.Debug.Fail() 使えやってことなんだろうね
どうしても例外上げるなら自前でLogicErrorExceptionとかを作るのが良いと思う
505
(2): (ブーイモ MMcf-m76R) 2022/04/18(月)20:28 ID:0OwrwjlVM(1/2) AAS
MS自身のコードだと、throw AssertUtil.Unreachable; みたいなのはよくあるよ
Unreachable はプロパティで、UnreachableException みたいなinternalなカスタム例外をnewして返してるだけ
506: 505 (ブーイモ MMcf-m76R) 2022/04/18(月)20:39 ID:0OwrwjlVM(2/2) AAS
一般に、アサーション目的で投げる例外は誤ってキャッチされる可能性の低い型であれば何でもよい
その意味では>>505のようにinternalな例外を定義して使うのが望ましいだろうね
必ずしも>>505の例のようにわざわざプロパティを定義する必要はないけど、あえてそうする理由としては
・いちいち throw new UnreachableException("No way!"); みたいにメッセージ書くのは面倒
・かといって空にすると、チームによっては静的チェックで例外にはメッセージを設定しろとか言われたりして面倒
といったところだろう
507: (ワッチョイ 5736-XhrW) 2022/04/18(月)20:39 ID:YFSVkBgS0(6/6) AAS
>>504 >>505
ありがとうございます。とても勉強になります。
やはり、例外を使いたいなら自分で作る、という方針で考えたいと思います。
508
(1): (ワッチョイ 9f01-0UVf) 2022/04/18(月)21:02 ID:wKhqv1yX0(2/2) AAS
>>501
「レスアンカーがおかしいです」は4つ以上のアンカーがあると出るみたい
> 488 様 489 様 491 様
みたいなのは
≫488-489,491
のように纏めたら1アンカーと解釈されたりするので工夫したらなんとかなることもあるよ
509
(1): (ワッチョイ b72c-+1fN) 2022/04/19(火)18:37 ID:eV3D0rVm0(1) AAS
>>484
ない、っちゅうか買う必要ないだろ
今の時代ググってしらべりゃC#はほとんど見つかる
俺がプログラム関係の本買ったのははるか昔Win95の時代にC++のMSDN本2冊合わせて厚さ10cmくらいあったような
それ以降1冊も買ってない
510
(2): (テテンテンテン MM8f-IQiQ) 2022/04/19(火)19:13 ID:bNSjpDXdM(1) AAS
俺はこの類で絶対に到達しないdefaultに突入してくる不具合踏んだことあるわ。
ハードの電源ラインに特定の時間帯だけノイズはいってた。
511
(2): (ワッチョイ b72f-mbkD) 2022/04/19(火)19:51 ID:x6ztzldE0(1) AAS
>>510
それはc#での話なのか?
cで低レベル制御とかならあり得るかもしれんが
ハード層が高度に抽象化されてる環境で起こるとは思えんが
1-
あと 491 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.045s