首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从MVC Controller.OnActionExecuting中的catch块返回Http错误状态似乎会导致向HTTP请求返回空结果

从MVC Controller.OnActionExecuting中的catch块返回Http错误状态可能会导致向HTTP请求返回空结果。在MVC框架中,Controller是处理用户请求的关键组件之一。OnActionExecuting是Controller中的一个方法,用于在执行Action方法之前执行一些预处理操作。

当在OnActionExecuting方法中的catch块中返回Http错误状态时,意味着在预处理过程中发生了异常。这种情况下,如果没有进一步处理异常或返回其他结果,那么默认情况下,HTTP请求将会收到一个空的响应结果。

为了避免向HTTP请求返回空结果,可以采取以下措施:

  1. 异常处理:在catch块中对异常进行适当的处理,例如记录日志、发送通知等。可以使用try-catch语句捕获异常,并根据具体情况选择适当的处理方式。
  2. 返回错误信息:在catch块中,可以通过返回一个包含错误信息的自定义响应对象来替代返回Http错误状态。这样可以向客户端提供有意义的错误信息,帮助他们理解发生了什么问题。
  3. 异常过滤器:使用MVC框架提供的异常过滤器来处理异常。异常过滤器可以在全局或特定Controller/Action级别捕获和处理异常,从而避免在OnActionExecuting方法中的catch块中返回Http错误状态。

总结起来,从MVC Controller.OnActionExecuting中的catch块返回Http错误状态可能会导致向HTTP请求返回空结果。为了避免这种情况,可以进行适当的异常处理、返回错误信息或使用异常过滤器来处理异常。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

XMLHTTP使用具体解释

(bstrHeader As String) As String 获取HTTP响应结果Header中指定名称值,用字符串表示,假设不存在则返回空串 Sub open(bstrMethod...bstrMethod可用值有GET,POST,HEAD,定义HTTP提交请求方式;必填 bstrUrl为要訪问HTTP资源地址;必填 varAsync 可选项,设置是异步还是同步等待返回结果...Sub send ([varBody]) server发送一个HTTP请求,并获取返回结果. varBody为要发送到server数据,通常在POST方式下使用....,send方法未调用 2 – 已装载,send方法已调用,但还未获得Header信息 3 – 交互,已获取了部分信息,这时调用responseText将得到不完整信息,返回错误 4 – 所有数据已接收完毕...得到responseXML为空 status HTTP返回代码. 200 – 成功 404 – 错误请求 500 – server内部错误,等等.

82820

【小家Spring】Spring MVC执行流程 FrameworkServlet、DispatcherServlet源码分析(processRequest、doDispatch)

源码分析) 【小家Spring】Spring MVC初始化(容器启动)时,Spring MVC九大组件初始化详解(Spring MVC运行机制) 这样会有助于你更好了解本文一个流程,毕竟既宏观步骤上去讲解...,也稍微微观(注意是稍微)源码角度去分析一下子 备注:如果你已经是高手,已经对Spring容器管理比较了解了,请自行忽略~ Spring MVC执行流程似乎是一个面必问的话题,面试官能通过一个问题...处理request,并返回ModelAndView对象,Controller是springmvc负责处理request组件(类似于struts2Action),ModelAndView是封装结果视图组件...毕竟这一对使用者来说还是非常透明。。。 DispatcherServlet执行流程源码分析 ? 我们调用栈了可以很直接看到调用关系。...} } 至此,整个Spring MVC处理请求一个过程算是结束了 总结 本文FrameworkServlet、DispatcherServlet源码处去跟踪比较具象去描述了Spring MVC一个执行过程

1.2K20

你有没有掉进去过这些Spring MVC“陷阱“(上)

一、自定义返回HTTP状态码   当浏览器输入一个URL地址时,浏览器服务器发出请求,在浏览器接收和显示响应内容之前,服务器返回一个包含HTTP状态响应头,响应浏览器请求...常见HTTP状态码有200、302、404、500等 HTTP状态码有以下五种类型,HTTP状态第一位表示状态类型: 1xx:服务器收到客户端请求,需要客户端继续执行操作 2xx:请求成功...3xx:重定向,需要进一步操作完成请求 4xx:客户端出错,请求出错 5xx:服务区错误请求处理发生错误 而我们在编写基于Spring MVC程序时并没有定义响应状态码,这是因为Spring MVC...已经在框架定义好了这些响应码,不需要在编写业务代码时再去定义响应码,当然Spring MVC也支持自定义状态码 需要自定义返回状态场景有以下几种 针对不容错误类型发送特定错误码 客户端定制化需求...Spring MVC自定义返回状态方式有以下几种: 使用ResponseEntity表示状态码、头部信息、响应体 Controller类或者异常类上使用@ResponseStatus注解标识响应码

82410

ContentNegotiation内容协商机制(一)---Spring MVC内置支持4种内容协商方式【享学Spring MVC

HTTP内容协商 虽然本文主要是想说Spring MVC内容协商机制,但是在此之前是很有必要先了解HTTP内容协商是怎么回事(Spring MVC实现了它并且扩展了它更为强大~)。...关于更多HttpContent-Type内容,我推荐参见此文章:Http请求Content-Type ---- Spring MVC内容协商 Spring MVC实现了HTTP内容协商同时,...优缺点: 优点:理想标准方式 缺点:由于浏览器差异,导致发送Accept Header头可能不一样,从而得到结果不具备浏览器兼容性 方式二:(变量)扩展名 基于上面例子:若我访问/test/1...~ 总结 内容协商在RESTful流行今天还是非常重要内容,它对于提升用户体验,提升效率和降低维护成本都有不可忽视作用,注意它三优先级为:后缀 > 请求参数 > HTTP首部Accept 一般情况下...,我们为了通用都会使用基于Http内容协商(Accept),但在实际应用其实很少用它,因为不同浏览器可能导致不同行为(比如Chrome和Firefox就很不一样),所以为了保证“稳定性”一般都选择使用方案二或方案三

1.8K20

2020最新Java面试题,常见面试题及答案汇总

poll() 和 remove() 都是队列取出一个元素,但是 poll() 在获取元素失败时候返回空,但是 remove() 失败时候抛出异常。  30. 哪些集合类是线程安全? ...当调用了线程对象start方法之后,该线程就进入了就绪状态,但是此时线程调度程序还没有把该线程设置为当前线程,此时处于就绪状态。在线程运行之后,等待或者睡眠回来之后,也处于就绪状态。运行状态。...,需要小心使用,否则会导致严重后果,例如在通过unsafe分配内存时候,如果自己指定某些区域可能导致一些类似C++一样指针越界到其他进程问题。 ...finally一般作用在try-catch代码,在处理异常时候,通常我们将一定要执行代码方法finally代码,表示不管是否出现异常,该代码都会执行,一般用来存放一些关闭资源代码。...将渲染结果返回给客户端。  101. spring mvc 有哪些组件?

57820

ASP.NET Core 错误处理(Handle Errors)

其实,前面我们已经提到了,IDeveloperPageExceptionFilter所有实现,组成一个管道,当错误需要在管道后续处理器作进一步处理时,就是通过这个next传递错误,所以,当需要传递错误时...HttpContext.TraceIdentifier }); } } 另外,还需要提醒一下,如果在请求备用管道(如示例Error)时也报错了,无论是Http请求管道中间件报错,还是Error...默认情况下,当ASP.NET Core遇到没有正文400-599Http错误状态码时,不会为其提供页面,而是返回状态码和空响应正文。...同样,会有一个占位符{0},用于填充Http状态客户端发送Http状态码302-已找到 然后将客户端重定向到指定终结点,在该终结点中,可以针对不同错误状态码分别进行处理 app.UseStatusCodePagesWithRedirects...同样,会有一个占位符{0},用于填充Http状态码 Url保持不变,并向客户端返回原始Http状态码 执行备用管道,用于生成响应正文 // 注意,这里要分开写 app.UseStatusCodePagesWithReExecute

2K20

Java开发手册-异常日志

正例:调用第三方服务出错是一级,中间件错误是二级,消息服务出错是三级。 11.【参考】错误后三位编号与 HTTP 状态码没有任何关系。 12....【强制】事务场景,抛出异常被 catch 后,如果需要回滚,一定要注意手动回滚事务。 6.【强制】finally 必须对资源对象、流对象进行关闭,有异常也要做 try-catch。...【强制】不要在 finally 中使用 return 说明:try return 语句执行成功后,并不马上返回,而是继续执行 finally 语句,如果此处存在 return 语句,则会在此直接返回...,无情丢弃掉 try 返回点。...这是一个非核心功能点影响到核心应用典型反例。 10.【推荐】方法返回值可以为 null,不强制返回空集合,或者空对象等,必须添加注释充分说明什么情况下返回 null 值。

52710

Java面试题大全(2020版)

poll() 和 remove() 都是队列取出一个元素,但是 poll() 在获取元素失败时候返回空,但是 remove() 失败时候抛出异常。 30. 哪些集合类是线程安全?...当调用了线程对象start方法之后,该线程就进入了就绪状态,但是此时线程调度程序还没有把该线程设置为当前线程,此时处于就绪状态。在线程运行之后,等待或者睡眠回来之后,也处于就绪状态。...,需要小心使用,否则会导致严重后果,例如在通过unsafe分配内存时候,如果自己指定某些区域可能导致一些类似C++一样指针越界到其他进程问题。...finally一般作用在try-catch代码,在处理异常时候,通常我们将一定要执行代码方法finally代码,表示不管是否出现异常,该代码都会执行,一般用来存放一些关闭资源代码。...将渲染结果返回给客户端。 101. spring mvc 有哪些组件?

43930

Java面试宝典(超级详细)「建议收藏」

poll() 和 remove() 都是队列取出一个元素,但是 poll() 在获取元素失败时候返回空,但是 remove() 失败时候抛出异常。 30. 哪些集合类是线程安全?...当调用了线程对象start方法之后,该线程就进入了就绪状态,但是此时线程调度程序还没有把该线程设置为当前线程,此时处于就绪状态。在线程运行之后,等待或者睡眠回来之后,也处于就绪状态。...,需要小心使用,否则会导致严重后果,例如在通过unsafe分配内存时候,如果自己指定某些区域可能导致一些类似C++一样指针越界到其他进程问题。...finally一般作用在try-catch代码,在处理异常时候,通常我们将一定要执行代码方法finally代码,表示不管是否出现异常,该代码都会执行,一般用来存放一些关闭资源代码。...将渲染结果返回给客户端。 101. spring mvc 有哪些组件?

1.1K40

Java面试题大全(2020版)

poll() 和 remove() 都是队列取出一个元素,但是 poll() 在获取元素失败时候返回空,但是 remove() 失败时候抛出异常。 30. 哪些集合类是线程安全?...当调用了线程对象start方法之后,该线程就进入了就绪状态,但是此时线程调度程序还没有把该线程设置为当前线程,此时处于就绪状态。在线程运行之后,等待或者睡眠回来之后,也处于就绪状态。...,需要小心使用,否则会导致严重后果,例如在通过unsafe分配内存时候,如果自己指定某些区域可能导致一些类似C++一样指针越界到其他进程问题。...finally一般作用在try-catch代码,在处理异常时候,通常我们将一定要执行代码方法finally代码,表示不管是否出现异常,该代码都会执行,一般用来存放一些关闭资源代码。...将渲染结果返回给客户端。 101. spring mvc 有哪些组件?

47310

web九大组件之---HandlerExceptionResolver异常处理器使用详解【享学Spring MVC

大了来讲,这其实也属于异常处理范畴咯。 既然异常处理这么重要,那么本文就重点讨论Spring MVC它提供对异常处理支持。...ResponseStatusExceptionResolver 若抛出异常类型上有@ResponseStatus注解,那么此处理器就会处理,并且状态给response。...它能够处理标准Spring MVC异常们,并且把它转换为对应HTTP status codes,一般作为兜底处理,Spring MVC默认也注册了此处理器。...应用流程 请求交给Handler处理后得到返回结果Result,但result可能会有异常,因此DispatcherServlet针对性对result做处理: DispatcherServlet:...所以最终因为ModelAndView是空但异常也没throw出来,最终就是把response返回喽(已经设置好返回状态码和错误消息response),显然这种方式虽然比上面稍好(没有错误代码了),但对用户来说也是不友好

3.5K23

HTTP 状态码类型描述

一、HTTP 状态码概念 当浏览者访问一个网页时,浏览者浏览器网页所在服务器发出请求。...当浏览器接收并显示网页前,此网页所在服务器返回一个包含 HTTP 状态信息头(server header)用以响应浏览器请求。...303 查看其他位置 HTTP 1.1 新增状态码。被请求资源可在另一位置找到,并应采用 GET 方式访问。 304 未修改 客户端请求内容并未改变,服务器将返回空内容。...404 未找到 客户端所请求资源未找到。 5xx 服务器错误 500 内部服务器错误 服务器遇到未知错误导致请求无法完成。 501 未实现 服务器不支持客户端请求功能。...502 网关错误 网关或代理服务器接收到远端服务器无效响应。 503 服务无法获得 服务器已超载或维护中导致请求无法完成。 504 网关超时 HTTP 1.1 新增状态码。

48731

Nginx之upstream被动式重试机制解读

fails 可以分成两类:默认错误,包括 error、timeout选择定义错误,包含 invalid_header 以及各种异常 http 状态错误等默认错误出现 error 场景,常见是上游服务器服务重启...、停止,或者异常崩溃导致无法提供正常服务。...默认情况下服务返回500状态码是不会重试 指令配置proxy_next_upstream设置当连接upstream服务器集群某个服务器第一次失败时,指定在哪些情况下将请求传递到下一个服务器语法:proxy_next_upstream...;默认:proxy_next_upstream error timeout;使用位置:http, ,serverlocation error # 与服务器建立连接,其传递请求或读取响应头时发生错误;timeout...# 在与服务器建立连接,其传递请求或读取响应头时发生超时;invalid_header # 服务器返回空或无效响应;http_500 # 服务器返回代码为500响应;http_502 # 服务器返回代码为

1.4K321

java.io.IOException: unexpected end of stream on Connection

在获取服务器响应过程,我们根据连接响应码进行不同处理,如果响应码为HTTP_OK(200),则表示请求成功,我们读取服务器返回数据并输出。...响应阶段:服务器收到请求后,根据请求URL和方法,执行相应处理,并将处理结果封装在一个HTTP响应返回给客户端。...响应包含响应码(表示处理结果状态)、响应头(包含响应元数据)和响应体(包含返回数据,例如HTML页面或JSON数据)。...无状态HTTP协议是无状态,即服务器不会保存客户端任何状态信息,每个请求都是独立。这样设计使得HTTP协议具有更好可伸缩性和扩展性。...浏览器作为客户端使用HTTP协议请求和接收HTML、CSS、JavaScript等资源,服务器将这些资源封装在HTTP响应返回给浏览器。

1.7K20

分布式系统BASE 和 ACID、幂等性、分布式锁、分布式事务与异步消息处理

——HTTP/1.1规范幂等性定义 定义上看,HTTP方法幂等性是指一次和多次请求某一个资源应该具有同样副作用。说白了就是,同一个请求,发送一次和发送N次效果是一样!...所以问题来了,一种典型情况是withdraw请求已经被服务器端正确处理,但服务器端返回结果由于网络等原因被掉丢了,导致客户端无法得知处理结果。...GET http://www.news.com/latest-news这个HTTP请求可能每次得到不同结果,但它本身并没有产生任何副作用,因而是满足幂等性。...一是通过业务操作实现幂等性,二是系统缓存所有请求与处理结果,最后是检测到重复请求之后,自动返回之前处理结果。...对于以上流程,消息重复发送导致业务处理接口出现重复调用问题。消息消费过程消息重复发送主要原因就是消费者成功接收处理完消息后,消息中间件没有及时更新投递状态导致

1.6K20

Go语言实践:从新手入门到上线真实小型服务所遇到那些坑

Go标准库HTTP包设计让这项工作十分简单,使用者渐渐发现:Go强大有一部分原因就在于其工具链与相关工具——其中包含各种可运行在代码强大命令。...但在Go,你会发现error其实也是返回值,在函数调用和响应处理十分常见,而panic则会拖慢应用性能,并导致崩溃——类似运行异常时崩溃。为什么要仅仅因为需要函数返回error就这样做呢?...当心不止一次Request.Body读取 http.Request.Body读取内容之后,其Body就被抽空了,随后再次读取返回空body[]byte{} 。...关键在于:如果在函数签名命名了返回值,就可以使用return(naked return),在调用返回时,也返回每个命名返回值所在状态。 然而,我们有一些大型函数,大到有些笨重那种。...在上例,err是新变量,因为在函数返回参数已经声明过,你以为ticket会被自动覆盖。但事实并非如此,由于区作用域存在,在声明和分配新ticket变量后,一旦区闭合,其作用域就会丢失。

1K80

Go语言实践:从新手入门到上线真实小型服务所遇到那些坑

Go标准库HTTP包设计让这项工作十分简单,使用者渐渐发现:Go强大有一部分原因就在于其工具链与相关工具——其中包含各种可运行在代码强大命令。...但在Go,你会发现error其实也是返回值,在函数调用和响应处理十分常见,而panic则会拖慢应用性能,并导致崩溃——类似运行异常时崩溃。为什么要仅仅因为需要函数返回error就这样做呢?...当心不止一次Request.Body读取 http.Request.Body读取内容之后,其Body就被抽空了,随后再次读取返回空body[]byte{} 。...关键在于:如果在函数签名命名了返回值,就可以使用return(naked return),在调用返回时,也返回每个命名返回值所在状态。 然而,我们有一些大型函数,大到有些笨重那种。...在上例,err是新变量,因为在函数返回参数已经声明过,你以为ticket会被自动覆盖。但事实并非如此,由于区作用域存在,在声明和分配新ticket变量后,一旦区闭合,其作用域就会丢失。

82470

Java开发手册之异常处理

最外层业务使用者,必须处理异常,将其转化为用户可以理解内容。 【强制】有try放到了事务代码catch异常后,如果需要回滚事务,一定要注意手动回滚事务。...【强制】不能在finally中使用return,finallyreturn返回后方法结束执行,不会再执行tryreturn语句。...【推荐】方法返回值可以为null,不强制返回空集合,或者空对象等,必须添加注释充分 说明什么情况下返回null值。调用方需要进行null判断防止NPE问题。...【参考】在代码中使用“抛异常”还是“返回错误码”,对于公司外http/api开放接口必须使用“错误码”;而应用内部推荐异常抛出;跨应用间RPC调用优先考虑使用Result方式,封装isSuccess(...【参考】避免出现重复代码(Don’t Repeat Yourself),即DRY原则。 说明:随意复制和粘贴代码,必然导致代码重复,在以后需要修改时,需要修改所有的副本,容易遗漏。

69210
领券