|
|
1
3
这一点很重要,因为您可以在许多地方将此库用于不同的目的。 在应用程序表示层中,如果您正在使用库代码,并且知道可能的异常,那么一定要用try/catch来捕获它们。
既然您使用的是ASP.NET,我建议您编写一个公共页基类,并在
甚至超出了你可以使用的范围
|
|
|
2
4
两条黄金法则:
记住,一个例外表明出了什么问题,而那个特殊的事情可能不是你想的那样。(内存不足、堆栈溢出、第三方服务故障、部署失败,导致程序集丢失、配置错误、安全异常等)。 除了极少数的异常,您应该看到的惟一一个Pokemon异常处理的地方是代码的最顶层,在那里异常应该发布到某个地方。例如,在global.asax文件中的application_error方法中。 以下是一些对您有帮助的链接: |
|
|
3
3
您需要考虑方法定义的契约。如果一个方法不能完成它的契约,那么您需要一个异常。从方法的契约的角度来看,方法中抛出的异常应该转换为有意义的异常。 在第一种情况下,我将捕获语句执行可能引发的任何异常(例如数据库错误),并将其转换为类似于authorizationexception的内容。从方法契约的角度来看,允许异常直接传播是没有意义的。例如,当方法正在履行作者是否被授权的契约时,允许数据库异常从方法中逸出是没有意义的。 将这种方法的思想用作合同,可以让您做出正确的决策。如果一个方法协定正在登录到数据库中,或者进行了一些数据库操作,那么允许传播异常可能很有意义。 具体化:使用第一个示例:
您可能还希望对授权异常设置内部异常:
然后您的客户机代码可以这样做:
您可能决定不想在即时呼叫站点捕获授权异常,因为您无法通知用户。所以你可以让它传播到一个你可以用它做点什么的层次。 希望有帮助! |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |