如何安全地向下转换(即在失败时返回 null)到基础对象的确切类型,而不会导致 的性能损失dynamic_cast,并且不必在我使用的每个类中放置支持代码?
如何分派异常,以便以集中,用户友好的方式处理错误处理和诊断?
例如:
正确的错误处理策略取决于异常的类型和正在尝试的操作.(在间歇性信号上,重试X次然后告诉用户;在驱动程序错误时,记录错误并重新启动驱动程序;等等)如何调用此错误处理策略?
catch每种类型的异常提供单独的块:由于从许多不同的地方调用DataHW类catch,因此每个调用站点都必须复制每个块.这看起来很糟糕.catch调用某个ExceptionDispatch函数的块switch:RTTI并且switch通常表示无法应用OO设计,但这似乎是最不好的替代方案.