除了 Exception
之外,继承系统异常是否是一种好的做法,如果它有意义的话?例如,如果我的自定义异常是特定类型的“无效操作”,那么继承 System.InvalidOperationException
是否明智?
我问的原因是我有许多类抛出 InvalidOperationException
和相同的消息。我正在考虑用可以定义自己的默认消息的自定义异常替换它们。如果要继承 InvalidOperationException
,我就不必重构 catch
处理程序。
最佳答案
不,简短而简单的原因是因为 InvalidOperationException
派生自 SystemException根据文档
Defines the base class for predefined exceptions in the System namespace.
从 Exception 派生被认为是最佳实践.
澄清一下 - 从 InvalidOperationException
派生没有任何问题(至少我知道)。但是,从 InvalidOperationException
等现成异常派生可能会导致您承担可能不需要的额外负担。我认为您真正需要问的问题是
“我将从 InvalidOperationException
派生到 Exception
中得到什么?”
根据我的个人经验,除了 Exception
之外,我从来没有真正需要从任何东西中派生。
关于c# - 继承 System.Exception 之外的内置异常类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18962833/