代码之家  ›  专栏  ›  技术社区  ›  sancho.s ReinstateMonicaCellio

C++异常处理:异常与IFSturf::失败

  •  -2
  • sancho.s ReinstateMonicaCellio  · 技术社区  · 5 年前

    在哪些情况下,选项1和2给出了不同的结果/行为? 它们在各个方面都是等价的吗?

    我尝试了一个不存在的 in_out/sample2.txt 强制一个异常,它们的行为也一样。

    int main() {
        string fnamein2 = "in_out/sample2.txt";
        ifstream ifstr;
        try {
            cout << "Reading " << fnamein2 << endl;
            ifstr.open(fnamein2);
            ifstr.exceptions( ifstream::eofbit | ifstream::failbit | ifstream::badbit );
        } catch(const exception &e) {               // <-- Option 1
        //} catch(const ifstream::failure &e) {     // <-- Option 2
            cout << "There was an error: " << e.what() << endl;
        }
        return 0;
    }
    
    1 回复  |  直到 5 年前
        1
  •  1
  •   Michał Walenciak    5 年前

    std::ifstream::failure std::exception

    code