P15 处理服务器端故障
这里的故障指的是服务器端的故障,和读取数据库抛出的异常,这种故障。而不是客户端引起的错误,例如验证错误。
try catch 对想能想到的影响消化还是比较大的。
在这个类里随便抛出一个异常。
状态是500
响应的body里面就是这个异常信息
现在改成生产环境
保存并运行
500的状态码 返回了。但是异常的信息没有返回在body里面。至少不会把内部的实现细节暴露给消费者了。
针对对异常返回一些通用的一些信息。添加一个中间件。
对这个中间件,进行简单的配置,参数是一个莱姆大表达式。
下面这段代码,就是当有未处理的异常发生时,就会走这段代码。但在实际的项目中呢,这块通常是要记录日志。这里暂时就不记录的。直接运行。
主要使用WriteAsync方法要引入命名空间 microsoft.AspNetCore.http;
把代码改回去
环境再改为开发模式:Development
开发模式下 会直接抛出异常信息
结束