try块处理程序的功能是什么?

时间:2010-09-03 06:13:10

标签: c++

我最近遇到过这个问题 - 什么是函数try块处理程序?

此外,它在哪里有用?

2 个答案:

答案 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块。

这通常与具有初始化列表的构造函数一起使用,以捕获在构造初始化列表中构造的对象期间抛出的异常。