13

boost::lexical_castに変換intするときの例外を無視しても安全std::stringですか?

4

3 に答える 3

17

を変換するときに字句キャストによって発生する例外は、変換に関連付けられintstd::stringいませんが、リソースを使用できません。bad_allocしたがって、演算子newによって発生した例外を無視するのと同じ方法で、これを無視できます。

于 2010-04-29T09:54:47.067 に答える
6

あなたが言うように、変換の理由で数値型のキャストが失敗する可能性があるとは思いません-もちろん、文字列を割り当てることができないため、キャストが失敗する可能性がありますが、通常、最高レベルのエラーを除いて、人々はそのエラーをキャッチしません彼らのコード。

于 2010-04-29T09:44:38.073 に答える
0

例外を「無視」すると、他の場所でキャッチされるか、プログラムが終了するまでコール スタックに反映されます。ポイントは、プログラムを継続して安全でない/未知のことを行うことを心配せずに例外を安全にキャッチできないことです (コマンドプロンプトへの「クラッシュ」が許容可能なエラー動作であるか、または未知の例外を処理する他の方法がある限り)。

残念ながら、C++ で例外スタック トレースを取得するのはそれほど簡単ではないため、例外がローカルでキャッチされない場合に有用なエラー メッセージを作成することは必ずしも容易ではありません。

于 2010-06-24T16:15:57.080 に答える