>>98
panicをハンドリングしないのはバグかどうかは仕様次第と完全に認めてるのに、建設的な議論って・・・
作法的な話や、ユーザーフレンドリなUIでエラーメッセージを出したい、いきなり終了して欲しくないのであってもプロジェクトごとに異なるし、一般的な普遍性なんて「仕様上」に何が言いようがあるんだ?
オレはいつもこうしてます!という癖だったらいくらでも言えるし、100人集めてアプリケーションのレイヤーでpanicをハンドリングする/しないでアンケートしてどっちが人気かで正しさが決まるようなものではない。
最終的に「アプリケーションのレイヤーでパニック起こすのはバグの時だけ」とかいうのは明らかに間違ってるでしょ
そうするような特定のプロジェクトの仕様がたまたま(確率的に)一致するかもしれないが、それも一般化できる話ではないよ。
まあ、お望みの建設的な議論をするなら、アプリケーションをライブラリのように使用できる余地があるならResultsなどでErrorを返すのはとても良いですが、それでもpanicをハンドリングしてErrorで返すべきでは”無い”でしょうね
なぜならRustはそれを推奨していないし、Errorチェックしてをpanicに変換する方向性はあっても、panicをErrorに変える方向性は、仮にログ出力してもpanicの握り潰しやエラー情報の欠落に等しい。(なぜならログへのI/Oエラーになってる可能性もあるから)
それは、そもそもRustのpanicは言葉上は回復不能なエラーであり、バグではなくメモリーに物理的な障害が発生して配列インデックスが変になったとか、処理が続行できない、もしくはいったん特定の場所に戻って回復できないときに使われる思想。
なので、panic->Error変換処理が正常に働くかも怪しい。だからRustはそれを捉えず上位へ流して最低限やるスタックの巻き戻しのみ処理を推奨し、即座に終了させる(=プログラムが落ちる)
Linusはこのスタックの自動巻き戻しがとても気に入らないらしいが、理由は巻き戻し処理が正常に働く理由が無いからだ。
それを無理やり捉えて、スタックトレースが出るのが嫌、即座に終了するのが嫌、は分かるけどpanicで終了したからと言って仕様に書いてなければバグじゃないでしょ
これを癖でやってしまうのはtry-catch構文があるC#やJava系から来た人が多いのではないかな...?
Rust part19
■ このスレッドは過去ログ倉庫に格納されています
2023/01/29(日) 01:28:33.47ID:K5ah9cLk
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【W杯C組結果】スコットランド0-3ブラジル/モロッコ4-2ハイチ [征夷大将軍★]
- 【米紙報道】高市首相「コングレッショナルフェロー(官職)」経歴詐称疑惑… ★4 [BFU★]
- 【岐阜】“終わりの会”の最中に…中学校で男性教師(41)が生徒に顔を複数回殴られ出血し搬送 2年生の14歳少年を現行犯逮捕 各務原 [ぐれ★]
- 【サッカー】日本代表、決勝Tの相手が確定! 2位通過ならブラジルと対戦、逆転1位ならモロッコと対戦… X戦々恐々「どっちも怖い」 [冬月記者★]
- 【速報】W杯C組前半終了:スコットランド0-2ブラジル/モロッコ2-2ハイチ [征夷大将軍★]
- 【地震】青森県で震度6強の地震 「北海道・三陸沖後発地震注意」発表か 気象庁が分析中 モーメント・マグニチュード7.0以上なら [ぐれ★]
- 【地上波/DAZNほか】 FIFAワールドカップ2026 総合スレ★172【メキシコ/カナダ/アメリカ】
- 【MLB】ツインズ vs ドジャース ★5
- 【MLB】ツインズ vs ドジャース ★6
- 【地上波/DAZNほか】 FIFAワールドカップ2026 総合スレ★171【メキシコ/カナダ/アメリカ】
- MLB総合★50
- 〓たかせん〓 5
- 麻生太郎「もう高市には協力できん」 [256556981]
- ブルーインパルス、また能登で飛んでしまう 高市「6/28わよ!😍 [399259198]
- 坊主クビAKB48花田藍衣「私一人では死なん。他のAKBメンバーがセックスしてる証拠出すぞ」 [977790669]
- 教育基本法改正20年 かつての自民党協議の議事録を入手 「愛国心」を盛り込むかどうかで論争😲 [861717324]
- 【速報】1位通過でモロッコ、2位通過でブラジルとの対戦が確定 [369521721]
- 青森で震度6強 [253992206]