网页设计参考网站,佛山市企业网站建设哪家好,广州网站设计哪个好,今天天津最新通告目录 1 自定义参数校验异常
2 自定义的curr_page_v参数校验函数#xff0c;如果不合法抛出自定义异常#xff01;
3 配置全局异常 1 自定义参数校验异常
# 1.用户自定义异常类型#xff0c;只要该类继承了Exception类即可
class ValDtoError(Exception):# 初始化def __in…目录 1 自定义参数校验异常
2 自定义的curr_page_v参数校验函数如果不合法抛出自定义异常
3 配置全局异常 1 自定义参数校验异常
# 1.用户自定义异常类型只要该类继承了Exception类即可
class ValDtoError(Exception):# 初始化def __init__(self, message):self.message message# 类一般返回值def __str__(self):return 参数校验异常 self.message2 自定义的curr_page_v参数校验函数如果不合法抛出自定义异常 Pydantic提供了四种validator BeforeValidator 运行在Pydantic内部的校验转换之前入参为输入值Any返回值为Any。 AfterValidator 运行在Pydantic内部的校验转换之后入参和返回值为正确的字段类型。 PlainValidator 运行时间和BeforeValidator相同但执行完之后整个校验过程结束不再执行其他validator和Pydantic内部的校验流程。 WrapValidator 可以运行在pydantic和其他validator之前或者之后或者返回值、抛出异常立即结束校验流程。 可以使用多个BeforeValidator、AfterValidator和WrapperValidator但是只能有一个PlainValidator。关于执行顺序从右到左执行所有Before和Wrap校验器再从左到右执行所有After校验器 class CommonPageDto(BaseModel):def curr_page_v(v:int) - int:if 111 v:raise ValDtoError(开始页不能小于0!)return vcurrPage: Annotated[int, BeforeValidator(curr_page_v)]pageSize: intsearch: dict3 配置全局异常
app.exception_handler(ValDtoError)
async def request_validation_exception_handler2(request: Request, exc: ValDtoError):print(f参数校验异常{request.method} {request.url})print(exc)return fail_res(f请求参数为{exc})