当前位置: 首页 > news >正文

济南哪里有做网站的公司/推广模式包括哪些模式

济南哪里有做网站的公司,推广模式包括哪些模式,创建个人网站教案,肥西网站建设参考:https://docs.microsoft.com/zh-cn/aspnet/web-api/overview/error-handling/exception-handling ①HttpResponseException HttpResponseException类型是一种特殊情况。 此异常将返回异常构造函数中指定任何 HTTP 状态代码。 例如,以下方法将返回 4…

参考:https://docs.microsoft.com/zh-cn/aspnet/web-api/overview/error-handling/exception-handling

①HttpResponseException

HttpResponseException类型是一种特殊情况。 此异常将返回异常构造函数中指定任何 HTTP 状态代码。 例如,以下方法将返回 404,找不到,如果id参数无效。
这个异常并不会触发我们的异常过滤器
   [HttpGet]public async Task<IHttpActionResult> GetTest(){HttpResponseMessage resp = new HttpResponseMessage(HttpStatusCode.NotFound){Content = new StringContent("没有找到ID值")};//这并不会触发我们的异常过滤器,他会直接返回throw new HttpResponseException(resp);}

②异常筛选器

您可以自定义 Web API 通过编写处理异常的方式异常筛选器。 异常筛选器时,控制器方法引发任何未处理的异常时执行不 HttpResponseException异常。 HttpResponseException类型是一种特殊情况,因为它专为返回的 HTTP 响应。
异常筛选器实现System.Web.Http.Filters.IExceptionFilter接口。 编写异常筛选器的最简单方法是从派生System.Web.Http.Filters.ExceptionFilterAttribute类并重写OnException方法。
 public class MyExceptionFilterAttribute : ExceptionFilterAttribute{public override Task OnExceptionAsync(HttpActionExecutedContext actionExecutedContext, CancellationToken cancellationToken){object obj = new{errcode = -1,errmsg = actionExecutedContext.Exception};actionExecutedContext.Response = new HttpResponseMessage(HttpStatusCode.NotImplemented){Content = new StringContent(JsonConvert.SerializeObject(obj), Encoding.UTF8, "application/json")};//可以根据具体情况判断//if (actionExecutedContext.Exception is NotImplementedException)//{//    actionExecutedContext.Response = new HttpResponseMessage(HttpStatusCode.NotImplemented)//    {//        Content = new StringContent(JsonConvert.SerializeObject(obj), Encoding.UTF8, "application/json")//    };//}//else//{//    actionExecutedContext.Response = new HttpResponseMessage(HttpStatusCode.InternalServerError);//}return base.OnExceptionAsync(actionExecutedContext, cancellationToken);}}

放在我们的控制器上面:

 

 
 [HttpGet]public async Task<IHttpActionResult> GetTest2(){//主动抛出异常throw new NotImplementedException("代码出错");}[HttpGet]public async Task<IHttpActionResult> GetTest3(){//自动处理异常string a = "a";int i = int.Parse(a);return await Task.FromResult(Ok(""));}

 

 

 

 ③HttpError

HttpError对象提供一致的方法来响应正文中返回的错误信息。 下面的示例演示如何返回 HTTP 状态代码 404 (找不到) 与HttpError响应正文中。也是直接返回内容,并不会触发异常。
 [HttpGet]public async Task<IHttpActionResult> GetTest4(){         throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, "错了脆了"));}
 

 

全局异常:下面的异常也无法捕捉
1.从控制器的构造函数引发的异常。
2.从消息处理程序引发的异常。
3.在路由期间引发的异常。
4.响应内容序列化期间引发的异常。
 

 

④IExceptionLogger(异常记录器)和 IExceptionHandler(异常处理程序)


异常记录器是查看所有未处理的异常捕获到由 Web API 的解决方案。

异常处理程序是用于自定义所有可能的响应未经处理的异常捕获到由 Web API 的解决方案。

异常筛选器是最简单的解决方案用于处理与特定操作或控制器相关的子集未经处理的异常。

 

这里我们用IExceptionHandler来完成我们的异常的处理。

 创建我们的异常类

  public class MyExceptionHandler : ExceptionHandler{public override Task HandleAsync(ExceptionHandlerContext context, CancellationToken cancellationToken){object obj = new{errcode = -1,errmsg = context.Exception};context.Result = new MyErrorResult{Request = context.ExceptionContext.Request,Content =JsonConvert.SerializeObject(obj)};return base.HandleAsync(context, cancellationToken);}}public class MyErrorResult : IHttpActionResult{public HttpRequestMessage Request { get; set; }public string Content { get; set; }/// <summary>/// 执行/// </summary>/// <param name="cancellationToken"></param>/// <returns></returns>public Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken){HttpResponseMessage response =new HttpResponseMessage(HttpStatusCode.InternalServerError);response.Content = new StringContent(Content, Encoding.UTF8, "application/json");response.RequestMessage = Request;return Task.FromResult(response);}}

 

注册全局: WebApiConfig中

       // Web API 配置和服务config.Services.Replace(typeof(IExceptionHandler), new MyExceptionHandler());
效果跟上面是一样的

 

 

转载于:https://www.cnblogs.com/Sea1ee/p/10513508.html

http://www.jmfq.cn/news/5244121.html

相关文章:

  • 网站被谷歌收录/外链相册
  • 杭州网络公司有哪些/百度seo怎么做
  • 天网网站建设/百度推广联盟
  • php网站好做seo/宁波网络营销推广咨询报价
  • wordpress改了固定链接后/成都市seo网站公司
  • 外贸网站建设 广州/代运营网店公司
  • 珠海网站推广/市场推广计划怎么写
  • vi设计都包括什么/沈阳网站优化
  • 天蝎做网站建网站/客服网站搭建
  • 搜中文找不到公司网站是怎么回事/天津seo优化
  • 注册了域名怎样做网站/appstore关键词优化
  • 南昌网站制作代理商/网站排名大全
  • 江西企业网站建设/网销怎么销售的
  • 怎么做水果机网站/新的seo网站优化排名 网站
  • java做网站合适吗/竞价推广运营
  • 论坛搭建教程/英文谷歌优化
  • 连云港网站建设案例/网站推广的作用
  • 重庆市建设工程造价站/佛山优化推广
  • qq钓鱼网站在线生成器/南宁seo外包服务
  • wordpress jsdelivr/班级优化大师下载安装最新版
  • 百度推广自己做网站/seo优化专员招聘
  • 仿照别的网站做/全国疫情最新
  • 网站设计什么样风格会高端些/长春网站建设技术托管
  • 石家庄新闻媒体求助热线电话/网站seo优化技能
  • 上海开发网站/合肥百度搜索优化
  • wordpress 站点语言/免费的网络推广有哪些
  • 视频网站为什么有人做/b2b网站源码
  • 德州网站建设哪家好/网站搜索排名查询
  • 电子商务网站毕业论文/搜索引擎优化的内容包括
  • 禅城网站建设价格/seo入门培训教程