[過去ログ] ふらっと C#,C♯,C#(初心者用) Part154 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
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で低レベル制御とかならあり得るかもしれんが
ハード層が高度に抽象化されてる環境で起こるとは思えんが
512(1): (アウアウウー Sa1b-MZ5k) 2022/04/19(火)20:00 ID:4CQfli8Qa(1) AAS
絶対の定義によるが、普通にあるよ
俺が遭遇したのだと電源電圧下がってUSB機器がリセットされる環境
USBもの使ってる途中で逝くものだから絶対に入らないとこに入った
513: (ワッチョイ 5736-XhrW) 2022/04/19(火)20:20 ID:RBfKVTUX0(1) AAS
>>508
ご親切にどうもありがとうございます!
…この書き込みはエラーにならないと嬉しいなあ。
>>510-512
勉強になります。
私がやってる程度のことではハードの影響を受けることはあまりなさそうですが、
私の書いたコードなら私の脳みその影響はしっかり受けますし、
慎重になるに越したことはないですね。
今回の話とは関係ないですが、
以前 C# のパターンマッチングで x is not 1 or 2 が !(x == 1 || x == 2) とは
別の意味になることに気付かずにしばらく悩み続けて、
自分の脳みそのあてにならなさにショックを覚えました。
514: (テテンテンテン MM8f-IQiQ) 2022/04/20(水)08:48 ID:UWj+wPguM(1/2) AAS
>>511
俺もそう思ったんだけど、どうしてもわからなくて、現場に出張って異常データが生まれるまでずっと立たせてもらってて尻尾をつかんだんよ。
他の機械の動作音を「なんだこれうっせえ…」って思ったらデータ壊れてた。
で、UnreachableをAssertしたら発見できた感じ。
515(1): (テテンテンテン MM8f-IQiQ) 2022/04/20(水)08:51 ID:UWj+wPguM(2/2) AAS
あいたみみきたたみちむあたたおあたまたたあまちたたたいたあいたあたたたつたなあたにとあああちきのつああああいあかおたあたあなまあおかたたたたあたななむさああ
516: (テテンテンテン MM8f-I9Qg) 2022/04/20(水)12:24 ID:A0C60PKcM(1) AAS
俺も別の機器近くにあると仕様書にないノイズ乗った想定外のデータ来てたとかあったな
517: (ワッチョイ 1701-Wyfp) 2022/04/20(水)13:20 ID:Ala17EyU0(1) AAS
ワッチョイ
518: (テテンテンテン MM8f-IQiQ) 2022/04/20(水)16:31 ID:K/ev14k4M(1) AAS
やっぱみんなあるんだなぁ。
>>515
これスマン、ケータイ勝手に動いてた。
519: (アウアウウー Sa1b-0UVf) 2022/04/20(水)20:25 ID:acZiDRW+a(1) AAS
組込機器開発してたらUnreachableは(可能ならログ採って)リスタートとかするのが普通だと思ってたが…
変なデータで処理続けるとか怖すぎる
520: (ワッチョイ ffda-JJ/y) 2022/04/20(水)21:40 ID:iFemtOat0(1) AAS
普通って何さ。
要件次第。仕様次第。
きめつけはいくない
521: (ワッチョイ ffbb-KI6G) 2022/04/20(水)22:34 ID:ZQEWQpWd0(1) AAS
スレチ
522(1): (ワッチョイ 7c33-Lpup) 2022/04/23(土)18:34 ID:lLj6XJfK0(1) AAS
話変わるけど、犬を抱いて散歩してる人って何が目的なの?犬も迷惑だと思うんだけど。
上下前次1-新書関写板覧索設栞歴
あと 480 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.015s