错误处理
nest
内置的异常层负责处理整个应用程序中的所有抛出的异常。当捕获到未处理的异常时,最终用户将收到友好的响应。
开箱即用,此操作由内置的全局异常过滤器执行,该过滤器处理类型
HttpException
(及其子类)的异常。每个发生的异常都
由全局异常过滤器处理
,
当这个异常无法被识别时
(
既不是
HttpException
也不是继承的类
HttpException ) ,
用户将
收到以下
JSON
响应
:
{"statusCode": 500,"message": "Internal server error"}
同时,我们也可以根据需要进行异常处理
基础异常类
Nest提供了一个内置的 HttpException 类,它从 @nestjs/common 包中导入。
现在当客户端调用这个端点时,响应如下所示:
{ "statusCode": 403, "message": "Forbidden" }
HttpException
构造函数有两个必要的参数来决定响应
:
response
参数定义
JSON
响应体。它可以是
string
或
object
,如下所述。
status
参数定义
HTTP
状态代码。
默认情况下,
JSON
响应主体包含两个属性:
statusCode
:默认为
status
参数中提供的
HTTP
状态代码
message:
基于状态的
HTTP
错误的简短描述
仅覆盖
JSON
响应主体的消息部分,请在
response
参数中提供一个
string
。
要覆盖整个
JSON
响应主体,请在
response
参数中传递一个
object
。
Nest
将序列化对象,并将其作为
JSON
响应返回。
第二个构造函数参数
-status-
是有效的
HTTP
状态代码
使用上面的代码,响应如下所示: