处理业务逻辑层中的业务规则异常
本文关键字:业务 规则 异常 处理 | 更新日期: 2023-09-27 18:30:52
在我的
ASP.NET MVC 应用中处理业务逻辑违规/异常的最佳方法是什么?我是否抛出带有 Http 状态代码的异常?
在我的应用程序中,我有多个项目,例如MVC,业务逻辑,DAL/基础架构等。
假设,我收到来自无权查看该信息的用户的请求。我发现用户在业务逻辑层(一个类库项目)中未获得授权。告诉 MVC 前端用户无权获取该信息的正确方法是什么?
验证用户是否获得授权的最佳方法是在控制器或操作级别。这意味着,使用 Authorize
属性装饰您的控制器或操作,并指定哪些用户/角色有权访问该控制器或操作。它不应该在业务逻辑级别。
必填字段、数据类型、范围验证等验证应使用数据注释执行,并且还应通过 Javascript 进行客户端验证。
对于其他业务验证(例如,如果某些内容在数据库级别失败,或者某些业务逻辑违规),最好的方法是在业务层编写验证逻辑并抛出异常。理想情况下,您的 MVC 项目应处理异常并显示常见错误页面,并使用 ELMAH 或 NLOG 等包在事件日志或数据库或文件系统中记录错误。