我有一个类foo
(我不能修改)白衣只有一个构造函数,有一个参数是这样的:Catch构造函数抛出错误?
foo bar("Hello!");
由于构造函数可以抛出一个错误,我想要实现的错误处理。我第一次尝试是这样的:
try {
foo bar("Hello!");
}
catch {
cerr << "Something went horribly wrong...";
return -1;
}
不过,现在foo
是try
块的范围内,并且不能用于其他地方。如果我理解正确的话,我不能声明对象而不初始化它,所以我可以在try
块之外声明bar
。那么我该怎么做来捕获构造函数抛出的错误呢?
编辑:澄清,这是在我的main
,并在catch
我将中止程序。此外,参数是一个将被打开的文件,所以没有已知的安全输入永远不会引发异常。
将所有相关的代码放在try块中。或者在try块中调用的函数中。 – juanchopanza
与相关的代码,你的意思是使用该对象的代码?这意味着我的大部分计划。似乎只是为了捕捉可能仅在初始化期间发生的错误? – Anders
那么,你的程序大部分都可以包含在'main()'函数中,对吧?那么为什么不把它包含在你放入try块的另一个函数中呢? – juanchopanza