我使用的 API 违反了 Liskov 替换原则:它抛出了自己的扩展 Exception 的 Exception 类型,但将来自基类的异常消息放在新的 ErrorCode 字段中,并将自己的(无用的)消息放在 Message 字段中。因此,要显示正确的消息,我需要将异常转换为 DerivedException 类型并使用 ErrorCode 字段。如果我将其视为异常对象,则会收到错误消息。
现在这在风格上让我感到厌烦,但它很容易解决:我可以捕获 DerivedException 并按照程序员的意图使用它。所以我的问题是:Liskov 原则有什么大不了的?人们使用违反原则的层次结构可能会遇到哪些实际问题?