C++异常捕获的误区
By hakka. Filed in 技术随笔 |Tags: C++, exception, 异常, 排错, 机制
C++中的异常捕获机制
try { ... }catch(Exception&) { AddLog(记录错误信息到日志) } |
很深入人心,在大多数情况下,这种用法是没有问题的,但是下面的用法会导致二度异常,会在排错上造成麻烦
try { ... ErrorObj }catch(Exception&) { AddLog(ErrorObj出错了) } |
原因是,ErrorObj这个对象已经失效,本意是在ErrorObj失效的时候捕获这个异常并输出到日志,但当再次引用的ErrorObj的时候,由于再也没有对这个异常进行再次异常捕获,程序当然就当了。
