当前位置: 首页 > 编程语言 > C#

库中的异常处理策略分享

时间:2023-04-10 16:39:25 C#

库中的异常处理策略在构建.NET库时,你的异常处理策略是什么?具体来说,您在库调用中处理异常并将它们暴露给调用代码的策略是什么?例如,对于.NET库中的异常处理,您推荐的准则和规则是什么?您是否像对待任何其他函数一样对待库函数,以便它无法处理的任何异常都按原样流出?是的,这绝对是默认策略。您会为图书馆创建自定义例外吗?是的,如果调用者可以想象对这种情况做些什么并这样做,他们需要能够将异常与其他异常区分开来。但这是非常罕见的。库对数据库的依赖性如何影响您的异常处理策略?数据库依赖项可能需要公开允许调用者指定库如何处理某些异常的设置(例如,MaximumDeadlockRetries)。您是否捕获所有异常并抛出库异常?您是否将原始异常设置为库的异常内部异常?不,并非所有例外。对于特定的异常,它是远程可能的,尽管我能想到的唯一情况是我的库可能尝试处理异常(如上面的数据库场景)但失败了。自定义异常-当它们有意义时。由于框架中的一些常见异常,情况并非如此。包含几个可能引发不同异常的不同类的库应该允许恕我直言不允许作为其原始类型渗透的内部异常。相反,它们应该包装在一个特定于库的异常中,该异常尽可能清楚地与异常的原始类型相关联。例如,MagicDatabaseLibrary可能会定义MagicDatabaseException,它又会产生一些派生异常MagicDatabaseTimeoutException、MagicDatabaseAuthenticationException等。如果SQLServer数据库抛出SQLServer超时异常(不管它叫什么),那么它应该包含在MagicDatabaseTimeoutException中。对于任何其他可能发生的半预期异常也是如此。如果不这样做,那么调用库的代码别无选择,只能使用“Pokemonexceptionhandling”,如果它有任何希望处理底层数据库问题的话。例如,如果调用代码应处理用户提供凭据以登录数据库但连接失败的情况,那么您需要能够捕获该异常。如果调用代码不知道它会是什么类型的异常,那么它除了捕获每个异常之外别无他法,希望它是由不正确的凭据或其他原因引起的,并向用户显示一条消息说连接失败。不如提供包装异常有用。以上就是C#学习教程:库中的异常处理策略的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权请点击右侧联系管理员删除。如需转载请注明出处: