正文

前言:上篇C#进阶系列——WebApi接口传参不再困惑:传参详解介绍了WebApi参数的传递,这篇来看看WebApi里面异常的处理。关于异常处理,作为程序员的我们肯定不陌生,记得在介绍 AOP 的时候,我们讲过通过AOP可以统一截获异常。那么在我们的WebApi里面一般是怎么处理异常的呢,今天这一篇,博主带着大家一起来实践下WebApi的异常处理。

WebApi系列文章

  • C#进阶系列——WebApi接口测试工具:WebApiTestClient
  • C#进阶系列——WebApi 跨域问题解决方案:CORS
  • C#进阶系列——WebApi身份认证解决方案:Basic基础认证
  • C#进阶系列——WebApi接口传参不再困惑:传参详解
  • C#进阶系列——WebApi接口返回值不困惑:返回值类型详解
  • C#进阶系列——WebApi异常处理解决方案
  • C#进阶系列——WebApi区域Area使用小结

为什么说是实践?因为在http://www.asp.net里面已经明确给出WebApi的异常处理机制。光有理论还不够,今天我们还是来试一把。通过实践,我们可能发现一些更详尽的用法。

回到顶部回到顶部文章 这样描述两者的区别:当呼叫 Web API 服务时发生了与预期上不同的错误时,理当应该中止程序返回错误讯息,这时对于错误的返回就该使用 HttpResponseException,而使用 HttpResponseMessage 则是代表着当客户端发送了一个工作请求而 Web API 正确的完成了这个工作,就能够使用 HttpResponseMessage 返回一个 201 的讯息,所以 HttpResponseMessage 与 HttpResponseException 在使用上根本的目标就是不同的,用 HttpResponseMessage 去返回一个例外错误也会让程序结构难以辨别且不够清晰。

回到顶部回到顶部

四、总结

 以上三种异常的处理方法,可以根据不同的场景选择使用。

  • 如果项目对异常处理要求并不高,只需要记录好异常日志即可,那么使用异常筛选器就能够搞定
  • 如果项目需要对不同的异常,客户端做不同的处理。而这个时候使用异常筛选器不能详尽所有的异常,可能使用HttpResponseException对象是更好的选择,定义更加精细的异常和异常描述。
  • 对于何时使用HttpError,又何时使用HttpResponseMessage,可以参考上文三里面用法。
  • 当然实际项目中很可能以上两种或者三种同时使用。

标签智能推荐:

010_回顾MVC

目录什么是MVC历史什么是MVC历史

ASP.NET MVC程序集版本问题

VS无法编译MVC工程,报错CS1705:本地System.Web.MVC.dll是4.0.0.0.1,高于项目的引用版本4.0.0.0解决方案:找到C盘中MVC的安装目录【C:\ProgramFiles(x86)\MicrosoftASP.NET\ASP.NETMVC4\Assemblies\】下面有System.Web.MVC.dll和System.Web.MVC.xml,这个dll是4.0.

服务器安全

将WindowsServer2008R2升级到WindowsServer2012R2     解决jQuery版本升级兼容性问题 C#MVC全局错误Application_Error中处理(包括Ajax请求)

软件架构文章汇总

老生常谈之MVC与MVP

Mvc设计模式和捕捉异常

MVC设计模式MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。是将业务逻辑、数据、显示分离的方法组织代码。MVC主要作用是降低了视图与业务逻辑间的双偶合。MVC不是一种设计模式,MVC是一种架构模式,不同的MVC存在差异M(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是模型或JavaBean,不过现在都分开来(数据Dao)

处理程序“ExtensionlessUrlHandler-Integrated-4.0”在其模块列表中有一个错误模块“ManagedPipelineHandler”

IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决方法IIS上部署MVC网站,打开后500错误:处理程序“ExtensionlessUrlHandler-Integrated-4.0”在其模块列表中有一个错误模块“ManagedPipelineHandler”  解决方法如下:以管理员运行下面的命令注册:32位机器:C

Spring+Spring+MyBatis整合开发实战(笔记)

核心框架概述MVC概述MyBatis

dotnet new指令介绍

tionconsole[C#],F#,VBCommon/ConsoleClasslibraryclasslib[C#],F#,VBCommon/LibraryUnitTestProjectmstest[C#],F#,VBTest/MSTestxUnitTestProjectxunit[C#],F#,VBTest/xUnitASP.NETCoreEmptyweb[C#],F#Web/EmptyASP

MVC模型的基本原理及实现原理

T是当今设计和开发各种Web应用的主流平台,MVC架构在J2EE平台上已有成熟的设计方案,而在.NET平台上却少有应用。所以讨论其在Asp.net环境下的应用和实现,仍很有意义。本文首先论述了MVC架构的原理、优缺点以及它所能为Web应用带来的好处。并结合作者在“成都微软技术中心”实习期间,研发项目的经验。介绍了一种在Asp.net环境下的实现方式。旨在帮助Web设计开发者更好的了解和掌握MVC,

11.9随笔

MVC(ModelViewController)mvc(比较流行的语言都会mvc)  好处:方便与程序维护扩展性比较强代码冗余低m:Model:模型层 管理所有数据库相关的逻辑。模型提供了连接和操作数据库的抽象层.v:view:视图层 负责界面显示,如HTML/XML/JSON显示c:Controller:控制层 负责所有的业务逻辑,比如if/el