错误提示是非常重要的,比如权限控制、资源控制等场景,需要服务器返回给用户错误提示,包括状态码和提示等内容,所以本文就主要记录FastAPI里的错误处理相关的内容
抛出一个HTTPException
从
fastapi
中导入HTTPException
,并在路径操作函数中进行判断输出即可;上面的代码就是当输入的
id
不为MinChess
的时候抛出错误,错误代码为404
,详细信息为not found
添加自定义响应头
有些场景的前端可能需要在
HTTP
的错误中添加一些自定义的响应头,添加方法如上,直接设置HTTPException
的headers
即可;
自定义异常处理器
定义一个Exception
类型错误类UnicornException
,在实际应用中就对应登录失败错误、验证码错误等;
在主应用中为UnicornException
错误定义处理函数,如果没在同一个文件内,需要导入对应的类,参考文末的源码;
在应用中进行声明即可,要导入相关的类;
上面的函数就是当用户输入的name为MinChess的时候,抛出一个
UnicornException
错误;这里的错误处理函数要实现全局处理的话,就一定要挂载道主应用上;根据上面的处理函数,我们操作输入
MinChess
的时候,不仅会返回给前端既定的数据,也会在控制台进行相关信息的输出,如下:
重写默认异常处理器
重写默认的异常处理器就是将fastapi内置的默认异常进行人为干预,方法很简单,同上面的方法,进行重写即可;
上面的第一个函数就是重写的参数校验的处理器,返回
PlainTextResponse
信息的同时会在控制台打印具体错误;上面的第二个函数就是重写的HTTPException异常的处理器,同样返回
PlainTextResponse
信息的同时会在控制台打印具体错误;
- 参数校验
这部分不需要重新写操作函数,找到之前写的某一个请求,发送错误类型的错误就会抛出异常:
- HTTPException
新建一个请求,用本章第一个例子也可以,上面的代码就表示当输入的
param
不为2时,抛出HTTPException
异常:
源码
项目结构如下图,具体的配置可以参看下面文章的第二节:
https://blog.jiumoz.com/archives/fastapi-cong-ru-men-dao-shi-zhan-13-chang-jian-pei-zhi-xiang
感谢阅读!
九陌斋地址:https://blog.jiumoz.com/archives/fastapi-cong-ru-men-dao-shi-zhan-12-cuo-wu-chu-li

评论区