我有一个包含以下图层的Web应用程序:
我不知道在哪里放错误处理。在webAPI控制器中,我应该只有try / catch语句吗?可以在服务/存储库代码中抛出错误吗?我试图避免将任何数据传递给客户端,除了一些友好的错误消息。
答案 0 :(得分:2)
应在服务层处理业务错误(例如,用户名已存在)。在所有控制器操作中放置try / catch语句可能很快变得麻烦并导致重复的代码。您可以查看custom error handling article
,它提供了处理Web API中各种错误的示例,例如自定义错误过滤器(从ExceptionFilterAttribute
类派生并覆盖OnException
方法)。
答案 1 :(得分:0)
您可以创建一个可由ExceptionFilter或http模块拦截的自定义异常类型。它将设置HTTP状态代码和描述。或者,它也可以返回带有错误数据的序列化对象。
其他异常类型将返回状态代码500。