C++のメソッド内で起きたエラーの扱いに関してですが、
実行環境に依存するエラー(ex:ファイルが存在しない)を通知する場合

・メソッドの戻り値としてエラーが発生した事を返す
・std::runtime_errorを投げる
・std::exceptionから自前の派生クラスを定義してそれを投げる

などが考えられますが、どれを使うべきでしょうか?