这是一个挑剔的问题,可能只是我的强迫症发作了,但我想知道为什么标准的异常类层次结构被设置为它所设置的。
exception
bad_alloc
bad_cast
bad_typeid
bad_exception
ios_base::failure
runtime_error
subclasses...
logic_error
subclasses...
所有的bad_*异常是不是可以全部归为类似于lang_support_error这样的一个父类?并且ios_base::failure异常似乎完全不合适。
这个异常类的层次结构为什么会演变成现在这样,是否有一些历史或技术原因?