我读过抛出异常是一项昂贵的操作。但是,创建您自己的异常不会使您的代码更具表现力和可读性吗?
我的一些同事建议您应该只使用 System.Exception 并将您的自定义文本插入到消息中,而不是创建一个新的自定义异常。
我对其他意见很感兴趣。感谢任何建议。
最佳答案
不要抛出 System.Exception
。曾经。
它的问题在于调用代码。出于多种原因,捕获一般的 Exception
对象是一种不好的做法。如果你抛出一个 Exception
基类的实例,那么调用代码别无选择,只能捕获 Exception
如果他们想要处理它。这迫使调用代码使用不好的做法。
此外,调用代码没有可靠的方法来区分异常是什么,如果它得到的只是 Exception
。
如果任何适用( ArgumentException
、 InvalidOperationException
等),通常最好使用预定义的异常之一。如果没有正确描述这种情况,那么自定义异常类是一个非常好的方法。
关于c# - 自定义异常的成本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6145518/