我想制作一个 FileIO 类,它将提供一些方法,如写入或读取。另外我想隐藏 FileIO 的实现(目前,它只是从 std::fstream 派生)。问题是 std::fstream 可能会抛出一些异常,但我不希望我的 FileIO 类抛出 std::fstream 异常,我想抛出我自己的异常(例如 FileIO::SomethingBadHappened)。有没有一种优雅的方式来做到这一点?
我的解决方案是用一个额外的 try/catch block 重写 std::fstream 的每个方法。
编辑: FileIO 类只是一个例子。我正在寻找包装任意类的通用解决方案。
最佳答案
做到这一点的“优雅”方法是不要重新发明轮子。尤其是这个轮子,往返月球上万次。这是经过验证的。你不需要发明这个在那里。
关于c++ - 编写一个带有我自己的异常的包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11091624/