我曾在某个地方(现在找不到了)读到过,庞大的异常层次结构是浪费时间的。当时这种说法的理由听起来很有道理,这个想法一直留在了我的脑海中。
在我自己的代码中,当我有一个可能出现各种错误情况的代码库时,我会使用单个异常并使用枚举成员来区分它们。
如果出现需要捕获这些错误之一的情况,我会捕获它,检查枚举值,如果不是我期望的值就重新抛出异常。理想情况下,这种情况应该很少发生。
最近我又开始处理异常,我对自己的异常习惯产生了反思。我很好奇其他人做什么以及为什么这样做?
使用层次结构还是一个带有数据成员的异常?
顺便说一句,我假设你同意使用异常而不是错误码的想法。我不想打开那个话题。