捕获委托构造函数的异常
下面演示一个使用Function-try-block
去捕获委托构造函数异常的例子。
#include <iostream>
class X { public: X() try : X(0) { } catch (int e) { std::cout << "catch" << e << std::endl; throw 3; }
X(int a) try : X(a, 0.) { } catch (int e) { std::cout << "catch" << e << std::endl; throw 2; }
X(double b) try : X(0, b) { } catch (int e) { std::cout << "catch" << e << std::endl; throw 1; }
X(int a, double b) : a_(a), b_(b) { throw 0; }
private: int a_; double b_; };
int main() { try { X x; } catch (int e) { std::cout << "catch" << e << std::endl; } }
|