[過去ログ]
ふらっと C#,C♯,C#(初心者用) Part154 (1002レス)
ふらっと C#,C♯,C#(初心者用) Part154 http://mevius.5ch.net/test/read.cgi/tech/1644416019/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
482: デフォルトの名無しさん (ワッチョイ e201-Uyzu) [sage] 2022/04/15(金) 13:37:19.25 ID:1joR/OE70 >>481 http://triumph-cpn.com/triumph/corelabel/angel25anniversary/img/mv_2010ss_sp.jpg http://mevius.5ch.net/test/read.cgi/tech/1644416019/482
483: デフォルトの名無しさん (アウアウウー Sabb-55Lb) [sage] 2022/04/15(金) 18:49:07.37 ID:ZZd0jnz9a おまえら・・・GJ! http://mevius.5ch.net/test/read.cgi/tech/1644416019/483
484: デフォルトの名無しさん (ワッチョイ 1fbd-DvUi) [] 2022/04/17(日) 12:25:11.04 ID:D0SaeSYI0 フォームアプリ作成が主体として、GW本でも読もうと思うんだけどおすすめの本ありますか? http://mevius.5ch.net/test/read.cgi/tech/1644416019/484
485: デフォルトの名無しさん (ワッチョイ 9779-skhS) [sage] 2022/04/17(日) 14:36:40.90 ID:HNDmidds0 ない http://mevius.5ch.net/test/read.cgi/tech/1644416019/485
486: デフォルトの名無しさん (ワッチョイ 97ad-HCi4) [sage] 2022/04/17(日) 18:32:11.96 ID:3icLqeK70 >>484 作りたいアプリを考えて実装しながら勉強が捗る http://mevius.5ch.net/test/read.cgi/tech/1644416019/486
487: デフォルトの名無しさん (ワッチョイ 5736-XhrW) [sage] 2022/04/18(月) 17:43:30.83 ID:YFSVkBgS0 以下の例のように、プログラムに間違いがなければ絶対に到達しない箇所で例外を投げる場合、 どの例外(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("プログラムが間違ってるから直してね"); } } http://mevius.5ch.net/test/read.cgi/tech/1644416019/487
488: デフォルトの名無しさん (ワッチョイ 9fad-29Va) [sage] 2022/04/18(月) 18:33:00.77 ID:U6PNIZM80 そもそも投げない デバッグ目的なら例外じゃなくてその時点でメッセージボックス使って表示させるし 例外の場合、投げた例外メッセージが必ずしもユーザ(この場合はデバッグしている人)に届くとは限らないと思うし http://mevius.5ch.net/test/read.cgi/tech/1644416019/488
489: デフォルトの名無しさん (ワッチョイ 3702-2+F3) [sage] 2022/04/18(月) 18:45:48.82 ID:CqNrq1/C0 そもそもswitchの必要ある?三項演算子で十分では http://mevius.5ch.net/test/read.cgi/tech/1644416019/489
490: デフォルトの名無しさん (ワッチョイ 9fad-29Va) [sage] 2022/04/18(月) 18:52:43.38 ID:U6PNIZM80 いやwそこは例と言っているから重要ではない気がするがw 例えが悪いってのはわかるけどさw http://mevius.5ch.net/test/read.cgi/tech/1644416019/490
491: デフォルトの名無しさん (ワッチョイ 3702-2+F3) [sage] 2022/04/18(月) 19:06:40.53 ID:CqNrq1/C0 絶対に到達しないって判りきってるなら、別にロジック入れんでいいんじゃないの? その例だとdefaultを奇数だよにしてもええし http://mevius.5ch.net/test/read.cgi/tech/1644416019/491
492: デフォルトの名無しさん (ワッチョイ ffbb-KI6G) [sage] 2022/04/18(月) 19:08:27.71 ID:8tbUw4/P0 正解はわからんけど俺ならException継承してそれ専用のクラス作るな ぶっちゃけ既存のほにゃらかExceptionは使い所合ってるかよく分からんもの多くて困ることあるし http://mevius.5ch.net/test/read.cgi/tech/1644416019/492
493: デフォルトの名無しさん (アウアウウー Sa1b-MZ5k) [sage] 2022/04/18(月) 19:09:08.77 ID:OZ/Iewlqa この二行だな debug.assert(false); throw new exception(); http://mevius.5ch.net/test/read.cgi/tech/1644416019/493
494: デフォルトの名無しさん (ワッチョイ 7f2d-XhrW) [sage] 2022/04/18(月) 19:12:34.13 ID:0xI2lblg0 >>491 もう少し質問者の意図を読もうよ… http://mevius.5ch.net/test/read.cgi/tech/1644416019/494
495: デフォルトの名無しさん (ワッチョイ 3702-2+F3) [sage] 2022/04/18(月) 19:14:17.23 ID:CqNrq1/C0 >>494 エスパーじゃないし、知らんがな > また、特に正解がなければ、皆さんのならどうするかを教えていただけると嬉しいです。 て書いてあるし、ワイならこうするっての書いたから別にええやろ http://mevius.5ch.net/test/read.cgi/tech/1644416019/495
496: デフォルトの名無しさん (アウアウウー Sa1b-MZ5k) [sage] 2022/04/18(月) 19:26:38.17 ID:OZ/Iewlqa www http://mevius.5ch.net/test/read.cgi/tech/1644416019/496
497: デフォルトの名無しさん (ブーイモ MMbb-3xp7) [] 2022/04/18(月) 19:31:17.73 ID:QSalzxoDM >>495 おバカ自慢要らない http://mevius.5ch.net/test/read.cgi/tech/1644416019/497
498: デフォルトの名無しさん (ワッチョイ 9fad-29Va) [sage] 2022/04/18(月) 19:56:03.00 ID:U6PNIZM80 上の例のようにわかりきっているコードはまあそうなんだけど“例”と言うようにわかりやすく示しているに過ぎず 極論を言えば、自分で見返してみても何このカオスな複雑怪奇でスパゲッティなコードがあってfuncの戻り値(Result)が0〜10の偶数値のみのはずだけど funcが呼び出すfunc1からfunc10のどこかに不具合があって負数や奇数、または11以上がResultに入ってしまう可能性を否定することができない場合 とか http://mevius.5ch.net/test/read.cgi/tech/1644416019/498
499: デフォルトの名無しさん (ワッチョイ 9779-skhS) [sage] 2022/04/18(月) 20:04:03.76 ID:TPGSz3ry0 funcXメソッドから呼ばれているメソッドはツリー状になっており そのメソッド総数は2586個で 全部で12566個の例外を発生させうる すごいでしょ? http://mevius.5ch.net/test/read.cgi/tech/1644416019/499
500: デフォルトの名無しさん (ワッチョイ 5736-XhrW) [sage] 2022/04/18(月) 20:12:51.97 ID:YFSVkBgS0 たくさんのアドバイスどうもありがとうございます。 あまり良い例が用意できず申し訳ありません。 http://mevius.5ch.net/test/read.cgi/tech/1644416019/500
501: デフォルトの名無しさん (ワッチョイ 5736-XhrW) [sage] 2022/04/18(月) 20:14:01.34 ID:YFSVkBgS0 申し訳ありません。続きを書き込みたいのですが、 「レスアンカーがおかしいです」と言うエラーが出てしまっています。 http://mevius.5ch.net/test/read.cgi/tech/1644416019/501
502: デフォルトの名無しさん (ワッチョイ 5736-XhrW) [sage] 2022/04/18(月) 20:15:04.45 ID:YFSVkBgS0 488 様 489 様 491 様 確かにおっしゃり通りですね。 ただ、状況によってはやはり例外を投げたくなることもありまして、 それをどうやって説明しようかと考えていたところ 498 様がとてもわかり易く まとめてくださったので、よければそちらを見ていただけると嬉しいです。 492 様 なるほど! つまり、おそらく初めからこういう目的で用意されている例外はないだろうということですね。 最初は InvalidProgramException が丁度いいかと考えていたのですが、 詳しいクラスの説明を読むとどうやら別の目的で使われる例外のようですし、 おっしゃるとおり、自分でクラスを作るのが一番のような気がしてきました。 493 様 アドバイスどうもありがとうございます。これも良いアイディアだと感じました。 意味的には一行目だけで十分だけれど、 それだけではコンパイルが通らないから二行目も書こうということですよね。 NotNullIfNotNullAttribute ならぬ ThrowExceptionIfFalseAttribute みたいなものが Debug.Assert に付けられていて二行目がなくてもコンパイルできたらいいのにな、 なんて妄想してしまいました。 http://mevius.5ch.net/test/read.cgi/tech/1644416019/502
503: デフォルトの名無しさん (ワッチョイ 5736-XhrW) [sage] 2022/04/18(月) 20:16:06.96 ID:YFSVkBgS0 エラーの原因がよくわからなかったので、 やむを得ずレスアンカーを使うのを諦めました。 読みにくくて申し訳ありません。 http://mevius.5ch.net/test/read.cgi/tech/1644416019/503
504: デフォルトの名無しさん (ワッチョイ 9f01-0UVf) [sage] 2022/04/18(月) 20:25:50.85 ID:wKhqv1yX0 まあこの手の話はあちらでも挙げられてて結局しっくりくる例外はないってことになってる https://stackoverflow.com/questions/3313906/which-exception-should-i-throw-to-signal-an-internal-error-in-my-program MS的には System.Diagnostics.Debug.Fail() 使えやってことなんだろうね どうしても例外上げるなら自前でLogicErrorExceptionとかを作るのが良いと思う http://mevius.5ch.net/test/read.cgi/tech/1644416019/504
505: デフォルトの名無しさん (ブーイモ MMcf-m76R) [sage] 2022/04/18(月) 20:28:51.38 ID:0OwrwjlVM MS自身のコードだと、throw AssertUtil.Unreachable; みたいなのはよくあるよ Unreachable はプロパティで、UnreachableException みたいなinternalなカスタム例外をnewして返してるだけ http://mevius.5ch.net/test/read.cgi/tech/1644416019/505
506: 505 (ブーイモ MMcf-m76R) [sage] 2022/04/18(月) 20:39:47.71 ID:0OwrwjlVM 一般に、アサーション目的で投げる例外は誤ってキャッチされる可能性の低い型であれば何でもよい その意味では>>505のようにinternalな例外を定義して使うのが望ましいだろうね 必ずしも>>505の例のようにわざわざプロパティを定義する必要はないけど、あえてそうする理由としては ・いちいち throw new UnreachableException("No way!"); みたいにメッセージ書くのは面倒 ・かといって空にすると、チームによっては静的チェックで例外にはメッセージを設定しろとか言われたりして面倒 といったところだろう http://mevius.5ch.net/test/read.cgi/tech/1644416019/506
507: デフォルトの名無しさん (ワッチョイ 5736-XhrW) [sage] 2022/04/18(月) 20:39:52.66 ID:YFSVkBgS0 >>504 >>505 ありがとうございます。とても勉強になります。 やはり、例外を使いたいなら自分で作る、という方針で考えたいと思います。 http://mevius.5ch.net/test/read.cgi/tech/1644416019/507
508: デフォルトの名無しさん (ワッチョイ 9f01-0UVf) [sage] 2022/04/18(月) 21:02:38.51 ID:wKhqv1yX0 >>501 「レスアンカーがおかしいです」は4つ以上のアンカーがあると出るみたい > 488 様 489 様 491 様 みたいなのは ≫488-489,491 のように纏めたら1アンカーと解釈されたりするので工夫したらなんとかなることもあるよ http://mevius.5ch.net/test/read.cgi/tech/1644416019/508
509: デフォルトの名無しさん (ワッチョイ b72c-+1fN) [sage] 2022/04/19(火) 18:37:13.18 ID:eV3D0rVm0 >>484 ない、っちゅうか買う必要ないだろ 今の時代ググってしらべりゃC#はほとんど見つかる 俺がプログラム関係の本買ったのははるか昔Win95の時代にC++のMSDN本2冊合わせて厚さ10cmくらいあったような それ以降1冊も買ってない http://mevius.5ch.net/test/read.cgi/tech/1644416019/509
510: デフォルトの名無しさん (テテンテンテン MM8f-IQiQ) [sage] 2022/04/19(火) 19:13:53.78 ID:bNSjpDXdM 俺はこの類で絶対に到達しないdefaultに突入してくる不具合踏んだことあるわ。 ハードの電源ラインに特定の時間帯だけノイズはいってた。 http://mevius.5ch.net/test/read.cgi/tech/1644416019/510
511: デフォルトの名無しさん (ワッチョイ b72f-mbkD) [sage] 2022/04/19(火) 19:51:58.01 ID:x6ztzldE0 >>510 それはc#での話なのか? cで低レベル制御とかならあり得るかもしれんが ハード層が高度に抽象化されてる環境で起こるとは思えんが http://mevius.5ch.net/test/read.cgi/tech/1644416019/511
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 491 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.031s