#11 C++で学ぶエラーハンドリングの基本
C++のエラーハンドリングには`try`・`catch`という仕組みがありますが、実行速度を重視する言語らしく、使い方には独自の考え方があります。この記事では、C++におけるエラーハンドリングの基本を解説します。
try・catchの基本
try {
if (b == 0) {
throw std::runtime_error("0では割れません");
}
} catch (const std::exception& e) {
std::cout << e.what() << std::endl;
}
`throw`でエラーを投げ、`catch`で受け止めるという流れは、Javaなどと似ています。
戻り値でエラーを表す方法も広く使われる
C++では、`try`・`catch`の仕組み自体に実行速度の面でのコストがあるとされ、パフォーマンスが重視される場面では、Goのように「戻り値でエラーを表す」書き方も好まれます。
C++ならではの注意点
C++には、Javaのような「チェック例外」の仕組みがなく、どんな例外が発生しうるかは実装を読むかドキュメントで確認する必要があります。また、プロジェクトによって「例外を使う方針」と「戻り値で表す方針」のどちらを採用しているかが異なるため、参加するプロジェクトの方針を最初に確認しておくことが大切です。
まとめ
C++のエラーハンドリングは`try`・`catch`・`throw`が基本ですが、戻り値でエラーを表す書き方も広く使われます。プロジェクトの方針を確認しながら書き方を合わせましょう。
本ページはプロモーションを含みます。
参考書籍(PR)
C++をもっと学びたい方には「新・明解C++入門編」がおすすめです。
コメント
コメントを投稿