c# - 自定义异常的成本

标签 c# exception

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

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

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

最佳答案

不要抛出 System.Exception。曾经。

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

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

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

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

相关文章:

c# - 为什么分配异步等待事件处理程序不会导致任何问题?

excel - 使用 Err.Raise 重新抛出错误

java - 在 Spring Security 中处理自定义异常

python - 在循环中捕获异常回溯,然后在脚本末尾引发错误

java - 使用 Java 减少端连接 ArrayIndexOutOfBounds 异常

Java Jersey PathParams 检查和 NotFoundException 自定义消息

c# - 在 C# 中删除文本文件的第一行

c# - 在嵌套循环中,Parallel.For 应该用在外循环还是内循环?

C# 变量作用域不一致

c# - asp.net core 中的配置键是否应该不区分大小写?