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

当抛出NotFoundHttpException时,Laravel8.x返回状态代码200而不是404

当抛出NotFoundHttpException异常时,Laravel 8.x默认返回状态代码200而不是404是因为Laravel框架处理异常的方式。在Laravel中,NotFoundHttpException是一个HTTP异常,表示请求的资源不存在。虽然常规上认为404状态代码更加准确地表示资源未找到,但Laravel框架在处理这种异常时选择了返回状态代码200。

Laravel框架采用了“友好错误提示”的设计理念,意味着当出现异常时,Laravel会尝试以更友好和易于阅读的方式呈现异常信息,而不仅仅是简单的返回404错误页面。返回状态代码200可以让开发人员通过异常页面获得更多有关异常的详细信息,包括异常的堆栈跟踪等,便于调试和定位问题。

尽管返回状态代码200可能会被一些开发人员视为与HTTP标准不符,但这种设计有其合理性。对于开发人员而言,更重要的是能够快速了解并解决异常,而不仅仅是看到一个简单的404错误页面。此外,Laravel提供了一套强大的路由和视图系统,可以轻松自定义异常处理逻辑,包括根据需要返回404状态代码或其他状态代码。

因此,对于抛出NotFoundHttpException异常,Laravel 8.x的默认行为是返回状态代码200而不是404。这样的设计旨在提供更友好和可定制的异常处理,以帮助开发人员更高效地调试和处理异常情况。

腾讯云相关产品推荐:

  • 云服务器CVM:提供弹性扩展的云服务器,可根据需求快速创建、部署和管理虚拟机实例。了解更多请访问:云服务器CVM产品介绍
  • 对象存储COS:高度可扩展的云存储服务,适用于存储和管理海量非结构化数据。了解更多请访问:对象存储COS产品介绍
  • 云数据库MySQL版:稳定可靠的云数据库服务,支持弹性扩容、备份恢复等功能,适用于各种规模的应用程序。了解更多请访问:云数据库MySQL版产品介绍
  • 人工智能机器翻译:提供先进的机器翻译技术和API接口,支持多种语言的翻译需求。了解更多请访问:人工智能机器翻译产品介绍
  • 视频点播VOD:可靠高效的视频点播服务,支持视频上传、转码、播放等功能,适用于各种视频应用场景。了解更多请访问:视频点播VOD产品介绍
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Webman实战教程:Exception异常插件如何解决开发中的异常问题

在PHP中遇到任何自身错误都会触发一个错误,不是抛出异常。PHP一旦遇到非正常代码,通常都会触发错误,不是抛出异常。因此,如果想要使用异常处理不可预料的问题,是办不到的。...json格式返回,以上为返回简略的异常信息 所有的异常错误处理器根据配置文件 config/app.php中debug的值来调整错误显示, debug值为true (表示在调试模式), 错误处理器会显示异常以及详细的函数调用栈和源代码行数来帮助调试...debug值为false,只有错误信息会被显示以防止应用的敏感信息泄漏,将返回简略的异常信息。...):NotFoundHttpException 路由地址不存在异常类(HTTP Status 404):RouteNotFoundException 请求限流在异常类(HTTP Status 429):...必须保持顺序是: ① 状态码 ② 错误消息 ③ 响应数据 使用场景 每个项目有标准的统一输出,自定义返回内容 前后端分离:前端要求返回的 HTTP状态码并不是 429,而是 200 或者其他 响应的body

46521

使用 Laravel 5.5+ 更好的来实现 404 响应

现在,抛出 404 异常,Laravel 会显示一个漂亮的 404.blade.php 视图文件,你可以自定义显示给用户 UI,但在该视图中,你无权访问 session,cookie,身份验证(auth... @stop Laravel 渲染这个回退(fallback)路由,会运行所有的中间件,因此当你在 web.php 路由文件中定义了回退路由,所有处在 web 中间件组的中间件都会被执行...; }); 由于 api 中间件组带有 /api 前缀,所有带有 /api 前缀的未定义的路由,都会进入到 api.php 路由文件中的回退路由,不是 web.php 路由文件中所定义的那个。...使用 abort(404) 和 ModelNotFound 异常 使用 abort(404) 时会抛出一个 NotFoundHttpException,此时处理器会为我们渲染出 404.blade.php...视图文件,同样的 ModelNotFoundException 异常也会做同样的处理,那么我们应该如何如何处理才能在更好的渲染出回退路由的视图,不是一个普通的视图呢?

2.2K20

Flask 学习-69.捕获异常钩子函数errorhandler

前言 flask 运行请求出现异常,会先触发对应的异常钩子,比如出现404,会根据NotFound 异常类返回404状态码。...2.函数error_404(error) 括号里面必须传一个位置参数接收异常 3.return 返回的时候需带上状态码(404),没带上状态码默认返回200 errorhandler 传异常类示例 从...", "msg": "请求参数不合法" } 处理 在处理请求 Flask 捕捉到一个异常,它首先根据代码检索。如果该代码没 有注册处理器,它会根据类的继承来查找,确定最合适的注册处理器。...一个蓝图在处理抛出异常的请求,在蓝图中注册的出错处理器优先于在应用中全 局注册的出错处理器。 但是,蓝图无法处理 404 路由错误,因为 404 发生的路由级 别还不能检测到蓝图。...自 Flask 1.1.0 开始,总是会传递一个 InternalServerError 实例给这个异常处理器,不是以前的未处理异常。原始 的异常可以通过 e.original_error 访问。

1.5K20

精讲RestTemplate第7篇-自定义请求失败异常处理

:超时、服务不存在等情况的时候(响应状态200、而是400、500HTTP状态码),就会抛出如下异常: ?...服务不存在所以抛出404异常。...("HTTP 响应状态:" + statusCode); } 异常抛出之后,程序后面的代码就执行不到了,无法进行后面的代码执行。...实际的业务开发中,有的时候我们更期望的结果是:不管你服务端是超时了还是服务不存在,我们都应该获得最终的请求结果(HTTP请求结果状态400、500),不是获得一个抛出的异常。...这时再去执行第一小节中的示例代码,就不会抛出异常。而是得到一个HTTP Status 404的结果。我们可以根据这个结果,在程序中继续向下执行代码。 ? 喜欢 (0)or分享 (0)

2.9K31

RESTful规范

什么是RESTful 一种软件架构风格、设计风格,不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。...以 DELETE为例,第一次DELETE返回200表示删除成功,第二次返回404提示资源不存在,这是允许的。 复杂查询 查询可以捎带以下参数: . 示例 备注 过滤条件 ?...§422 Unprocesable entity - [POST/PUT/PATCH] 创建一个对象,发生一个验证错误。...状态码的完全列表参见这里 URI失效 随着系统发展,总有一些API失效或者迁移,对失效的API,返回404 not found 或 410 gone;对迁移的API,返回 301重定向。...API 可能抛出两类异常:业务异常和非业务异常。 业务异常 由自己的业务代码抛出,表示一个用例的前置条件不满足、业务规则冲突等,比如参数校验不通过、权限校验失败。

2K00

网关修改响应码,拯救业务不规范设计

后端开发人员对Http基本知识存在欠缺我在进入公司,调试接口发现很多的接口响应码都是200,无论处理这个请求,有没有抛出异常,Http响应码都是200。我在看代码,很多的处理逻辑和下面差不多。...并且Http响应码是404,正常处理 } else if (dismiss404 && response.status() == 404 && !...如果响应码没有在200~299范围内(404需要根据条件开启),OpenFeign会抛出异常。...因为游戏客户端的接口,不管请求是否成功,Http响应码都必须是200管理后台和第三方应用都能正确处理Http响应码,第三方应用对接口要求严格,比如权限不足就必须返回403。...最终代码public class XcyeGatewayProperties { /\*\* \* 网关会自动将所有返回的响应码转换为200,如果存在不需要转换的请求头,请在此排除,支持ant

23510

Swift基础 基础知识

注意 仅您特别需要与平台原生单词大小相同的无符号整数类型,才使用UInt。如果不是这样,最好是Int,即使已知要存储的值是非负值。...在本例中,(404,"NotFound")是描述HTTP状态代码的元组。HTTP状态代码是Web服务器在请求网页返回的特殊值。如果您请求不存在的网页,则返回404NotFound的状态代码。...定义元组,您可以命名元组中的单个元素: let http200Status = (statusCode: 200, description: "OK") 如果您命名元组中的元素,则可以使用元素名称访问这些元素的值...通过返回具有两个不同值的元组,每个值都具有不同的类型,该函数提供了有关其结果的更有用的信息,不是只能返回单个类型的单个值。有关更多信息,请参阅具有多个返回值的函数。..., or "optional Int" 由于初始化器可能会失败,它返回一个可选的Int,不是一个Int。可选的Int写成Int?,不是Int。

14200

SpringBoot系列教程web篇之全局异常处理

当我们的后端应用出现异常,通常会将异常状况包装之后再返回给调用方或者前端,在实际的项目中,不可能对每一个地方都做好异常处理,再优雅的代码也可能抛出异常,那么在 Spring 项目中,可以怎样优雅的处理这些异常呢...本文将介绍一种全局异常处理方式,主要包括以下知识点 @ControllerAdvice Controller 增强 @ExceptionHandler 异常捕获 @ResponseStatus 返回状态码...ControllerAdvice配合注解@ExceptionHandler来实现全局异常捕获处理 @ControllerAdvice为所有的 Controller 织入增强方法 @ExceptionHandler标记在方法上,表示出现对应的异常抛出到上层...状态码是 200 ?...@ResponseStatus 上面的 case 中捕获的异常返回状态码是 200,但是在某些 case 中,可能更希望返回更合适的 http 状态码,此时可以使用ResponseStatus来指定

84420

星辰云同款超级好看404页面源码

简介       404 Not Found404页面就是当用户输入了错误的链接返回的页面。...404页面的目的是:告诉浏览者其所请求的页面不存在或链接错误,同时引导用户使用网站其他页面不是关闭窗口离开。       ...正确设置的自定义404错误页面,不仅应当能够正确地显示,同时,应该返回404”错误代码不是200”或“302”。...搜索引擎蜘蛛在请求某个URL得到“404状态回应时,即知道该URL已经失效,便不再索引该网页,并向数据中心反馈将该URL表示的网页从索引数据库中删除,当然,删除过程有可能需要很长时间;搜索引擎得到...“200状态,则会认为该url是有效的,便会去索引,并会将其收录到索引数据库,这样的结果便是这两个不同的url具有完全相同的内容:自定义404错误页面的内容,这会导致出现复制网页问题。

1.1K20

Nginx之error_page模块解读

,导向指定的路由,然后再由指定的路由处理,如下错误代码404,相当于访问http://localhost:80/50x.html,正好被内部传送给 location = /50x.html让其来进行处理...root /usr/share/nginx/html; }跳转到指定网址其原理是响应到错误代码后,302(临时重定向到目标网址),如下错误代码404,导向https://www.csdn.net...';}}​更改反馈状态码 本来遇到404找不到文件的错误,但是nginx可以把它状态码改为200返回给用户(例子如下) ​ error_page 404 =200 /50x.html;...error_page 404 = /404.html 可显示自定义404页面内容,但返回默认200状态码。...但如果php中定义返回404状态码,404状态码可以正常返回,但无法显示自定义页面内容(出现系统默认404页面),这种情况可以考虑用410代码替代( header("HTTP/1.1 410 Gone"

2.1K61

系统服务化构建-状态码设计要点

code:信息代号 message:信息描述 time:接口返回时间 第二部分是具体数据如下: data 节点 我们可以 看到 code=4302,4302 并不是一个 HTTP 协议状态码,而是一个业务状态码...rest响应401.png HTTP 状态码常见的有200404,501几个。 HTTP 状态码是 HTTP 协议的工程实现。...这里举一个简单的幂等性例子,我们知道 DELETE 方法是幂等的,如果之前已经删除过特定的资源,再次请求也应该返回 200 的响应码,不是 404 资源不存在的响应。...客户端排除法 客户端 HTTP 请求的通用方法是采用排除法,什么是排除法,客户端在请求服务端的 REST 接口,会先在网络层面判断接口是否通,包括 404 或者 200常见几个状态 。...更严谨的说法是 请求的资源描述中包含资源状态编码和描述信息,如 message。 data 没有数据,有的工程师喜欢把 data 置为 null,或者直接不返回 data 字段。

4K30

怎么自定义服务器的404,如何自定义404页面

默认的404错误页面呆板麻木,让访问者感觉很挫败,可能会直接离开您的网站。 自定义404页面的目的是:告诉浏览者其所请求的页面不存在或链接错误,同时引导用户使用网站其他页面不是关闭窗口离开。...二、404页面和SEO优化的关系: 很多网站存在这个问题:为了增强用户体验,从而自定义404页面;但是没有正确设置404页面,导致返回的是200或302状态不是404状态码。...这对访问的用户而言,HTTP状态码究竟是“404”还是“200”来说并没有什么区别,但对搜索引擎却是相当重要的。 搜索引擎通过HTTP状态码来识别网页的状态。...搜索引擎获得了一个错误链接,网站应该返回404状态码,告诉搜索引擎放弃对该链接的索引。如果返回200或302状态码,搜索引擎就会为该链接建立索引,这导致大量不同的链接指向了相同的网页内容。...为保证能正确返回404状态码,可在自定义的404页面“notfound.asp”中间加入以下代码: <%Response.Status=“404NotFound”%> 这样,便可以保证IIS能够正确地返回

1.6K10

RESTful API接口设计规范与最佳实践

一个查询的结果为空的时候,为什么有的接口设计会返回异常(HTTP状态404或其他),有的则是会返回请求成功(HTTPS状态200),但是返回结果是空数组或者null等表示结果为空的标识?...最后总结一下这个问题就是,强烈建议严格按照HTTP状态码的定义区分接口响应的HTTP状态码,错误码作为一种细分的补充。 Part4HTTP状态码不存在,返回 200 还是 404 ?...问题: 一个查询的结果为空的时候,为什么有的接口设计会返回异常(HTTP状态404或其他),有的则是会返回请求成功(HTTPS状态200),但是返回结果是空数组或者null等表示结果为空的标识?...1返回HTTP状态200 当我们查询一个资源但是结果为空,到底要不要把本次请求视为一个404的异常是取决于业务场景。...最后总结一下这个问题,请求的结果为空,是不是属于异常要考虑业务场景,并且这个划分定义也是很有必要的,可以避免潜在的业务理解偏差导致的程序执行逻辑问题,因为如果是一个异常,那么会更早的被前端在统一异常处理里面的捕获并处理

79010

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

现在我们在下方添加如下代码抛出一个异常: app.Use((context, next) => { throw new NotImplementedException(); }); 开发人员异常页中间件捕获了该未处理异常...里面报错,此时ExceptionHandlerMiddleware均会重新引发原始异常,不是向外抛出备用管道的异常。...默认情况下,ASP.NET Core遇到没有正文的400-599Http错误状态,不会为其提供页面,而是返回状态码和空响应正文。...code=404,而且,响应状态码也变了,变成了200Ok。...同样的,会有一个占位符{0},用于填充Http状态码 Url保持不变,并向客户端返回原始Http状态码 执行备用管道,用于生成响应正文 // 注意,这里要分开写 app.UseStatusCodePagesWithReExecute

2K20
领券