我有某种意识形态的问题,所以:C++ - 在哪里抛出异常?
假设我有一些模板函数
template <typename Stream>
void Foo(Stream& stream, Object& object) { ... }
这确实与此object
和stream
(例如东西,连载该对象流或类似的东西)。
比方说,我还添加一些简单的封装类,如(并假设这些包装的数量等于2或3):
void FooToFile(const std::string& filename, Object& object)
{
std::ifstream stream(filename.c_str());
Foo(stream, object);
}
所以,我的问题是:
在这种情况下(思想上),如果我的stream
不好,我应该抛出异常吗?我应该这样做在每个包装或只是动议通过检查我的Foo
,所以它的机身看起来像
if (!foo.good()) throw (something);
// Perform ordinary actions
我明白,这可能是没有编码的最重要组成部分,这些解决方案实际上是相等的,但我只是想知道“适当的”方式来实现这一点。
谢谢。
+1:避免剪切和粘贴是编程的最终目标:) – neuro 2010-06-07 15:47:33