代码: 全选
#define NEW new (std::nothrow)
现在就有一个悖论,除非你不用stl库,不然stl会抛出异常,安全编程的话就应该捕获
这些异常,既然使用了异常就该用异常声明,不然编译器认为所有函数都可以抛出任
何异常,也就是没有不可预测的异常,这样就有可能会在编码的时候漏掉,与其说漏
掉,不如说抛出了考虑之外的异常,而未知异常是基于异常声明工作的,这样又得使
用异常声明,异常声明也不是安全的,仅仅是指导编译器如何生成代码,如果抛出声
明之外的异常,仍然能通过。