[過去ログ] C++相談室 part165 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
241
(2): デフォルトの名無しさん (ワッチョイ 16cf-BOeC) [sage] 2024/02/11(日) 09:19:29.20 ID:XOPhWcHA0(1/5) AAS
>>236
236(2): デフォルトの名無しさん (ワッチョイ ef63-uLm/) [sage] 2024/02/11(日) 03:08:09.08 ID:4PD3HqyC0(1/5) AAS
>>232
それは未知の例外投げてきた原因を調査しなさすぎ
製品ならそういう「たぶん大丈夫っしょw」的なのは許されないね

>>233
ドキュメント通りに例外発生条件にならないように呼んでやったのに
例外を飛ばしてくるライブラリって一体……
製品やぞ……
あんたの認識じゃ catchする=見かけ上動き続ける なんだ?
なんか根本的に勘違いしてる気がする。
243: デフォルトの名無しさん (ワッチョイ 16cf-BOeC) [sage] 2024/02/11(日) 09:47:48.61 ID:XOPhWcHA0(2/5) AAS
アンカ間違えた、すまん
>>241>>235
235(1): デフォルトの名無しさん (ワッチョイ bf27-tai3) [sage] 2024/02/10(土) 23:44:13.35 ID:iRyhZExm0(1) AAS
>>234
catchしないということは終了させるということ
見かけ上動き続けたらいいってもんじゃない
宛な。
247: デフォルトの名無しさん (ワッチョイ 16cf-BOeC) [sage] 2024/02/11(日) 10:14:56.00 ID:XOPhWcHA0(3/5) AAS
>>245
245(2): デフォルトの名無しさん (ワッチョイ 1e27-2ki6) [sage] 2024/02/11(日) 09:55:44.37 ID:2tL2xZqD0(3/3) AAS
>>241
>>169を否定している
知らない例外が飛んできた場合にcatchして握りつぶしてそのまま動作を継続するかどうかって話な

そのtryブロックの処理が失敗したものとするって書いてあるじゃん。
250
(1): デフォルトの名無しさん (ワッチョイ 16cf-BOeC) [sage] 2024/02/11(日) 12:01:58.52 ID:XOPhWcHA0(4/5) AAS
>>248
248(1): デフォルトの名無しさん (ワッチョイ ef63-uLm/) [sage] 2024/02/11(日) 11:18:37.96 ID:4PD3HqyC0(4/5) AAS
>>231
>前半のよくわからない計算はcatch句を書いたらそのC0網羅のためのテストケースが必要になるとかいうことなんだろうか
例外が関数の階層をぶち抜いてfall-throughしてくることを忘れている発言
1. catchが書かれた関数が正しくcatchし、適切に処理するか(処理してせき止め or/and 必要な場合再スロー)(←要テスト!
2. fall-throughする関数が例外による処理の中断でおかしいことにならないか(←要テスト!

2をテストもせずに放置するとおかしくなる例は>>183のとうーり
これにより、例外を生じる関数foo()の呼び出しパティーンn個それぞれに対し、a個のテストが必要になっる
例外を発生させない使い方をするなら、n*a*mではなくmの定数倍(例外を飛ばさない使い方に依存擦る定数)。
例外が飛んで来たらバグ。わかりやすい

例外を多用しつつn*a*mをよくわからない計算とか言っている時点で以下略
>例外が関数の階層をぶち抜いてfall-throughしてくることを忘れている発言

やっぱり意味不明だな。catchすれば「階層をぶち抜いて」ってことはないわけだが。

>2
2(2): デフォルトの名無しさん (ワッチョイ 194e-FUJr) [sage] 2023/10/31(火) 08:59:52.78 ID:DBRUqQAF0(1) AAS
>1 乙です

前スレ 例外はループ脱出に使うような物じゃない、との意見に賛成です。

自分は、例外は「起こり得るけどいちいちエラー処理を書いたらアホな話を」「処理呼び出し毎ではないレベルで」「エラー対処コーディングするもの」と思ってます。

具体例は、
リンクリストなどコレクション操作でメモリ不足が起きた場合、のエラー処理。
コレクションの追加や削除を頻繁に行うコードって、大体はもっと概念レベルが高い事をやってるので、1件の追加 レベルでエラー処理書いてたらアホな感じになる。

しかも、GUI プロセスを作ってて何か上手く動かないから特定のエラーだけを画面に表示したい、など、ことさら明確に対処したい場合です。プロセスが落ちればいいだけなら、main()の外側、の仕様がやってくれる。

古い本の情報だけど、SBリップマンによると、MS VC++と、sun、hp-ux の C++コンパイラで、例外を使う/使わないで速度性能調査したそうで、 4~6% の速度劣化があったとの事です。
. fall-throughする関数が例外による処理の中断でおかしいことにならないか(←要テスト!

もしそのテストが必要なんだとすれば、catchしない場合はその例外が通過する
呼び出し階層全部でテストをしなきゃならないってことになるが。
251
(1): デフォルトの名無しさん (ワッチョイ 16cf-BOeC) [sage] 2024/02/11(日) 12:31:22.40 ID:XOPhWcHA0(5/5) AAS
>>249
249(2): デフォルトの名無しさん (ワッチョイ ef63-uLm/) [sage] 2024/02/11(日) 11:18:50.45 ID:4PD3HqyC0(5/5) AAS
>>244
以下の主張のどこが抽象論なのかkwsk、
1. ライブラリのドキュメントに従い、可能な限り例外を生じない使い方で設計する(>>236
2. 例外が生じない前提としたところは例外が生じないことをテストする(m個のオーダー)(>>229
3. 1と2の過程で意図に反して飛んでくる例外がある場合は原因を調査し、修正を試みる(>>228 例外が飛んで来たらバグ
4. 3を意図通りの形で解決できないことが判明した場合は
  (ライブラリの使用方法の当方の誤解、ライブラリのドキュメントの不備、ライブラリの作りの粗さによりこれはあり得る、
  結果的にtry { } catch (/*省略*/) { ... }を付ける可能性もある(>>228
5. 例外を複数段fall-throughか再スローを許し、かつそれが起きた後もプログラムの
  正常な動作の継続を意図する場合はテストケースが爆発する(>>

設計し、検証し、必要とあらばtry { } catch ( ) の追加も含めた修正を行うと言っているのやぞ;;;

いっぽう藻前らの主張は
1. 例外をせき止めれば良い(←処理不能な未知の例外が飛んでくることが無いというライブラリに対する全幅の信頼
2. 例外を処理したりfall-throughしたり再スローしたりする関数はn*a*m個のテストしなくても動くっしょ
 (←自己のコードに対する無制限の気体
3. ドキュメントは100%信頼せず、読まない
の3成分からなるわけやが……
>1
1(3): デフォルトの名無しさん (ワッチョイ efda-9b8G) [sage] 2023/10/31(火) 07:37:38.52 ID:+ZyYyqMO0(1) AAS
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること

次スレは>>980が立てること
無理なら細かく安価指定

※前スレ
C++相談室 part164
2chスレ:tech VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
. 例外をせき止めれば良い(←処理不能な未知の例外が飛んでくることが無いというライブラリに対する全幅の信頼

なるほどな。
catchする⇒無視する、握りつぶす って脳内変換されてんだな。

catch書いたからといって上に挙げられたようなテストができなくなるわけじゃないっしょ。必要と思うならやればいい。

3.の意図しない例外の原因調査なんて main() に例外が上がってきてプログラムが落ちてからより
発生個所に近い下層で catch できた方がはるかに調査しやすいと思うんだがな。感覚が違うなあ。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.126s*