我只是在问一个一般性的问题,当我在一个图书馆项目中工作时出于好奇而产生的问题,在该项目中,另一种方法会抛出异常返回值,但我想将该异常转换为返回值。我使用多个try catch块解决了该问题,但只是想知道在C ++中是否有一种方法可以在引发异常后恢复。
我不确定您想要什么。将异常转换为返回代码不会在异常之后恢复。C ++委员会考虑过恢复,但是尚不清楚这意味着什么。考虑:
int
someFunction()
{
// ...
if ( someCondition ) {
throw SomeException();
}
assert( !someCondition );
// ...
}
在C ++中,assert
永远不会触发(并且通常不会写它,因为if
和throw
会明确声明所声明的条件在此之后是有效的)。如果您可以恢复该异常,assert
则将(或至少可能)触发该异常;您将失去重要的代码验证手段。
也有使用其他语言使用过它的人报告说,它实际上并不能很好地工作,并且在他们开始使用恢复的每种情况下,他们都不得不更改代码以免以后使用它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句