代码之家  ›  专栏  ›  技术社区  ›  Hemant

什么是函数Try块处理程序?

c++
  •  4
  • Hemant  · 技术社区  · 16 年前

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

    另外,它在哪里有用呢?

    2 回复  |  直到 16 年前
        1
  •  3
  •   mukeshkumar    16 年前

    这样写的函数:

    void fun ()
    try 
    {
    .....
    .....
    }
    catch(SomeException & e)
    {
    ....
    ....
    }
    

    被调用为函数Try块。

    这通常与具有初始化列表的构造函数一起使用,以捕获在初始化列表中构造的对象的构造过程中引发的异常。

        2
  •  4
  •   Kirill V. Lyadvinsky    16 年前

    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 */ }
    };