0

我有一个包含以下层的 Web 应用程序:

  1. 客户
  2. 网络API
  3. 服务
  4. 存储库

我不确定在哪里放置错误处理。在 webAPI 控制器中,我应该只使用 try/catch 语句吗?可以在服务/存储库代码中抛出错误吗?除了一些友好的错误消息之外,我试图避免将任何数据传递给客户端。

4

2 回答 2

2

业务错误应该在您的服务层中处理(例如,用户名之类的东西已经存在)。将 try/catch 语句放在所有控制器操作中可能会很快变得繁琐并导致重复代码。您可以查看custom error handling article提供了在 Web API 中处理各种错误的示例,例如自定义错误过滤器(从ExceptionFilterAttribute类派生并覆盖OnException方法)。

于 2013-03-17T21:49:27.923 回答
0

您可以创建一个自定义异常类型,该类型将被 ExceptionFilter 或 http 模块拦截。它将设置 HTTP 状态代码和描述。可选地,它还可以返回带有错误数据的序列化对象。

其他异常类型将返回状态码 500。

于 2013-03-17T23:07:36.323 回答