0

我有下列层的Web应用程序:为N层Web应用程序构建WebAPI - 错误处理的适当做法?

  1. 客户端(S)
  2. 的WebAPI
  3. 服务
  4. 核心

我不知道在哪里尽管如此。在webAPI控制器中,我应该只有try/catch语句吗?在服务/存储库代码中抛出错误是否可以?我试图避免将任何数据传递给客户端,除了一些友好的错误消息。

回答

2

应该在您的服务层处理业务错误(例如,像username这样的事情已经存在)。将try/catch语句放在所有控制器操作中可能会很快变得繁琐并导致重复的代码。您可以查看custom error handling article,其中提供了处理Web API中各种错误的示例,例如自定义错误过滤器(源自ExceptionFilterAttribute类和重写OnException方法)。

+0

谢谢Darin :) – RobVious 2013-03-18 01:12:28

0

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

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

相关问题