我最近遇到过这个问题 - 什么是函数try块处理程序?
此外,它在哪里有用?
答案 0 :(得分:4)
Here你可以找到一个很好的解释。
它可能在构造函数的初始化列表中很有用:
struct A
{
private:
std::string s;
public:
A( int value ) try : s( boost::lexical_cast<std::string>( value ) ) {}
catch ( boost::bad_lexical_cast ) { /* handle lexical_cast exception here */ }
};
答案 1 :(得分:3)
这样写的函数:
void fun ()
try
{
.....
.....
}
catch(SomeException & e)
{
....
....
}
被称为函数try块。
这通常与具有初始化列表的构造函数一起使用,以捕获在构造初始化列表中构造的对象期间抛出的异常。