我读过抛出异常是一项昂贵的操作。但是,创建您自己的异常不会使您的代码更具表现力和可读性吗?

我的一些同事建议您应该只使用 System.Exception 并将您的自定义文本插入到消息中,而不是创建一个新的自定义异常。

我对其他意见很感兴趣。感谢任何建议。

最佳答案

不要抛出 System.Exception 。曾经。

它的问题在于调用代码。出于多种原因,捕获一般的 Exception 对象是一种不好的做法。如果你抛出一个 Exception 基类的实例,那么调用代码别无选择,只能捕获 Exception 如果他们想要处理它。这迫使调用代码使用不好的做法。

此外,调用代码没有可靠的方法来区分异常是什么,如果它得到的只是 Exception

如果任何适用( ArgumentExceptionInvalidOperationException 等),通常最好使用预定义的异常之一。如果没有正确描述这种情况,那么自定义异常类是一个非常好的方法。

关于c# - 自定义异常的成本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6145518/

10-14 08:42