第11条 try和catch
写在异常安全之前,是我看了一部分代码,看了很多的try/catch all的咚咚,I suppose是不是这些Catch都是异常安全的。事实上,我认为很多catch all仅仅为了保证程序还能运行,因为除了一行日志之外,我看不到什么别的咚咚。我不认为所有的地方都不需要做额外的动作。
异常代码不是越多越多,事实上,异常代码影响C++的效率。可以尽量通过析构函数来进行异常环境下的自动清理工作,而不是通过try/catch。如果没有能当时处理的问题,就不要抛出异常,如果不可以就必须抛出异常(忽略?有些情况下也许是个好办法)。异常类是做什么用?我想最主要的目的还是传递信息。
如果在系统边界遇到这种情况怎么处理?两个办法,从API返回错误值,要不就置一个状态值,然后GetLaseErr()。