例外とはっ

C++
10
前へ 1 2 ・・ 6 次へ
普通のC++使い、銀天すばる @SubaruG

とりあえず言えるのは、正常パスにおいて例外処理に頼るようなコードは悪いデザインだ、程度。

2010-04-29 21:47:51
ドクターねるねるねるね @DrNerunerunerun

@SubaruG 例外の使えない環境にしちゃえばいいよおもうよ^q^

2010-04-29 21:48:10
普通のC++使い、銀天すばる @SubaruG

もう一つ言えるのは、現状において、例外安全に気を配ったコードが少ないという事実。

2010-04-29 21:48:41
Egtra (ysk-noh) @egtra

あと、APIの戻り値も例外に対応させていいことが結構あるんだけど、ラップするのが面倒というのは良くあること(自分の場合)。

2010-04-29 21:49:06
Egtra (ysk-noh) @egtra

VC++の# importはなぜかraw_interface_onlyを付けて使われることが多い不思議。それ使わないで高水準なラッパ作らせるのが便利なのに。

2010-04-29 21:50:39
ドクターねるねるねるね @DrNerunerunerun

@SubaruG でも実行速度が遅いので組み込み環境とか特異な環境では基本的に使用禁止ですw

2010-04-29 21:50:46
Egtra (ysk-noh) @egtra

それはそれで罠にハマりそうで嫌という考えもありだとは思うけど。

2010-04-29 21:50:59
普通のC++使い、銀天すばる @SubaruG

僕は例外安全教徒でもあるわけですが、そんな僕からしてみても、例外はあまり使いすぎない方がいい気がします。少なくとも、事前に例外の有無を検出できるようにするべき( bad_alloc みたいな超例外的な奴もありますが)。

2010-04-29 21:51:12
普通のC++使い、銀天すばる @SubaruG

@apprentice_mage try だけならオーバーヘッドはないんじゃないでしたっけ。

2010-04-29 21:51:31
普通のC++使い、銀天すばる @SubaruG

C++ においては、例外は例外的な事態に対してのみ使うべきだと思うの。例外的、がどの程度かは人によって違いますが。

2010-04-29 21:55:58
普通のC++使い、銀天すばる @SubaruG

つまり何が言いたいかと言うと bad_lexical_cast 爆発しろと。

2010-04-29 21:56:14
ドクターねるねるねるね @DrNerunerunerun

@SubaruG 個人的には、newがメモリ確保に失敗した程度で例外投げてくるのが気に入りません。NULLでいいじゃないですか・・・

2010-04-29 21:56:56
Egtra (ysk-noh) @egtra

そういうわけでWinSTLは割とガンガン例外に対応させていて基本好きだけど、moduleクラスは例外使われすぎて萎えた。新しいWidowsにしかないモジュールをLoadLibraryする用途に使おうと思ったら、LoadLibraryがNULL返すと例外。回避手段なさそうだった。

2010-04-29 21:57:36
総長 @krustf

C++の例外って全然使った覚えが無いんだけど・・・。ネットワーク関係には例外をばんばん使うべきだろうなとは思うけど、それ以外は使うの避けたほうがいいんじゃないかなと思ったり。

2010-04-29 21:57:41
普通のC++使い、銀天すばる @SubaruG

@apprentice_mage deprecated ですけど nothrow な new を使えばよいのでは。

2010-04-29 21:58:01
普通のC++使い、銀天すばる @SubaruG

例外的な事態が起きたときに例外を投げてくれないのは困るにゃー。失敗率のごく低いものに対していちいち戻り値による成功チェックなんてしたくない。

2010-04-29 21:59:14
総長 @krustf

ごめんなさい嘘です。例外機能がめんd(yr

2010-04-29 21:59:25
Egtra (ysk-noh) @egtra

よく例外のお世話になると思われるネットワークすらBoost.Asioの非同期版使うとなかなか例外になる機会を見ない。ハンドラに引数として渡されるから。

2010-04-29 21:59:52
総長 @krustf

という訳で真面目に例外を使うべき場所と使わないほうが良い場所を見極める力が非常に欲しい。

2010-04-29 22:00:12
若年寄(もう若くない) @kikairoya

戻り値はチェックするもんじゃない、使うもんだ

2010-04-29 22:00:26
普通のC++使い、銀天すばる @SubaruG

new なんてめったに失敗しないんだから NULL チェックなんてしたくないです。なのでそこは例外を投げる今の設計を支持。

2010-04-29 22:00:42
ドクターねるねるねるね @DrNerunerunerun

@SubaruG 例外的な事態 を判定する閾値がもう少し高くてもいいんじゃないかと思います。個人的にですが

2010-04-29 22:00:55
普通のC++使い、銀天すばる @SubaruG

@apprentice_mage それはライブラリの設計方針に任せる感じですからねー、良くも悪くも。bad_lexical_cast は爆発していいですが bad_alloc は今のままがいいです。

2010-04-29 22:02:13
前へ 1 2 ・・ 6 次へ