noexcept 替代 throw。优点是更安全,
如果noexcept 修饰的函数抛出了异常,编辑器可以直接选择终止程序。
C++ 11中析构函数默认为noexcept(true),从而阻止异常的扩散。