Javaとは異なり、C++には「標準フレームワーク」はなく、小型(オプション)標準ライブラリのみがあります。さらに、C++プログラマーの間では、例外をすべて使用するかどうかについて異なる意見があります。です。
標準ライブラリの例外タイプを使いたい人もいれば、いくつかのライブラリ(例えばPoco)はカスタム例外階層(std :: exceptionから派生したもの)を使用しているものもあれば、そうでないものもあります。例外(例えばQt)をまったく使用しないでください。
標準ライブラリに固執する場合は、特殊な例外タイプがあります。invalid_argument
(extend logic_error
)です。参考のため
#include <stdexcept>
// ...
throw std::invalid_argument("...");
:ここstdexcept
で定義されている(と文書化)標準の例外タイプの概要です:
exception
logic_error
domain_error
invalid_argument
length_error
out_of_range
runtime_error
range_error
overflow_error
underflow_error
参照型のdynamic_cast <>()は標準例外をスローしますか? –
これは、std :: bad_cast例外です。それが参考になっている場合。ポインタを使用すると、0が返され、ユーザコードは結果値をチェックする必要があります。 –
うん、std :: bad_cast。 –