首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Python编程与实战

    【云+社区年度征文】全面拥抱FastApi-优雅的处理HTTPException

    为了直观友好的给客户端返回错误, 在 FastApi 中一般使用 HTTPException from fastapi import FastAPI, HTTPException app = FastAPI app.get("/items/{item_id}") async def read_item(item_id: str):     if item_id not in items:         raise HTTPException found")     return {"item": items[item_id]} 当遇到用户请求异常的时候,可以选择用 raise 将异常抛出去 抛出异常,便立即会结束本次请求,并将HTTP错误从HTTPException 再次请求会看到不一样的提示~~~ 重写 HTTPException 同样,你也可以重写 HTTPException 处理程序 比如你想返回文本的错误提示,而不是默认的 JSON 格式错误提示 和上面一样 ,使用 @app.exception_handler(HTTPException) 装饰异常处理函数即可 from fastapi.responses import PlainTextResponse

    2K40发布于 2020-12-21
  • 来自专栏james大数据架构

    log4net 中错误 System.Web.HttpException (0x80004005): 文件不存在

    用日志组件,Global 中配置的输出最后一个错误信息,总是出现下面的错误信息: 2014-04-01 14:35:41,757 级别:ERROR 信息:[Exception]: System.Web.HttpException

    91650发布于 2018-01-22
  • 来自专栏自动化、性能测试

    FastAPI(27)- Handling Errors 处理错误

    (状态码和响应信息)返回给客户端,需要使用 HTTPException HTTPException 是一个普通的 exception,包含和 API 相关的附加数据 因为是一个 Python exception from fastapi.exceptions import HTTPException from fastapi.responses import PlainTextResponse # 重写 HTTPException vs Starlette 的 HTTPException FastAPI 的 HTTPException 是 Starlette 的 HTTPException 的子类 唯一不同:FastAPI 的 HTTPException 支持自定义 Response Headers,在 OAuth2.0 中这是需要用到的 但需要注册(重写/重用)一个异常处理程序时,应该用 Starlette 的 HTTPException 来注册它 这样做的好处:当 Starlette 内部代码或扩展插件的任何部分引发 HTTPException,自己注册的异常处理程序都能捕获并处理它 重用 FastAPI HTTPException

    1.5K10发布于 2021-09-27
  • 来自专栏python3

    FastAPI--错误处理(5)

    一、概述 HTTPException异常抛出 再之前Bottle 中其实有一个就是HttpError异常类,在FastAPI也存在这么一个HTTPException。 我们查看HTTPException和StarletteHTTPException的源码发现他们也是继承与Exception: class HTTPException(StarletteHTTPException HTTPException且返回新增自定义请求头 import uvicorn from fastapi import FastAPI, HTTPException app = FastAPI() 自定义返回HTTPException 类似之前Bottle我们通过添加一个自定义的全局的错误,来统一的处理返回。 才可以定义请求头         raise HTTPException(status_code=418, detail="Nope! 

    1.6K20发布于 2020-06-28
  • 来自专栏从零开始学自动化测试

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

    class HTTPException(Exception): """The base class for all HTTP exceptions. 如果找不到已 注册的处理器,那么 HTTPException 子类会显示 一个关于代码的通用消息。没有代码的异常会被转化为一个通用的 500 内部服务器 错误。 from flask import json from werkzeug.exceptions import HTTPException @app.errorhandler(HTTPException 因为 HTTPException 实例是一个合法的 WSGI 响应,你可以直接传递该实例。 如果同时基于 HTTPException 和 Exception 注册了异常处理器, Exception 处理器不会处理 HTTPException 子类,因为 HTTPException 更有针对性。

    2.1K20编辑于 2022-09-19
  • 来自专栏python编程军火库

    高效优雅处理程序错误实战

    2 HTTPException 我们用 HTTPException 模块返回带错误信息的 Response。 HTTPException 是一个普通的 Python 异常,同时带有与 API 访问有关的附加数据。 return {"item_id": item_id} 5.2 重写 HTTPException 异常处理器 同样的方法,我们可以重写 HTTPException 异常处理器。 6 fastapi HTTPException 对比 Starlette HTTPException fastapi 中 HTTPException 继承自 Starlette 的 HTTPException 因此,通常我们在代码中抛出 fastapi 的 HTTPException 异常。但是,当我们注册异常处理器的时候,我们应该注册为 Starlette 的 HTTPException

    1.2K30发布于 2021-03-29
  • 来自专栏Winter漫聊技术

    Retrofit进阶

    ) { HttpException httpException = (HttpException) e; Logger.e(httpException.code () + ""); Logger.e(httpException.message() + ""); if (httpException.response( = null && httpException.response().errorBody() ! String bodyStr = httpException.response().errorBody().string(); Logger.e(bodyStr) httpException才能看到网络请求错误的全部内容。

    77520发布于 2018-09-04
  • 来自专栏雷子说测试开发

    FastAPI 学习之路(十九)处理错误

    如何处理呢,我们通过一段代码来演示 from fastapi import FastAPI, HTTPException app = FastAPI() items = {"test": "雷子说测试开发 HTTPException 是额外包含了和 API 有关数据的常规 Python 异常。 因为是 Python 异常,所以不能 return,只能 raise。 如在调用路径操作函数里的工具函数时,触发了 HTTPException,FastAPI 就不再继续执行路径操作函数中的后续代码,而是立即终止请求,并把 HTTPException 的 HTTP 错误发送至客户端 我们看下如何自定义响应头 from fastapi import FastAPI, HTTPException app = FastAPI() items = {"test": "雷子说测试开发"} 触发 HTTPException 或请求无效数据时,这些处理器返回默认的 JSON 响应结果。 不过,也可以使用自定义处理器覆盖默认异常处理器。 后记 发现问题,解决问题。

    1.4K50发布于 2021-08-25
  • 来自专栏码匠的流水账

    再聊HttpClient的NoHttpResponseException

    * @throws HttpException in case of HTTP protocol violation or a processing * problem. * @throws HttpException in case of HTTP protocol violation or a processing * problem. request, final HttpClientConnection conn, final HttpContext context) throws HttpException /http/impl/DefaultBHttpClientConnection.java public HttpResponse receiveResponseHeader() throws HttpException * @throws HttpException in case of HTTP protocol violation or a processing * problem.

    42010编辑于 2024-05-03
  • 来自专栏Michael阿明学习之路

    fastapi 请求文件 / 表单 / 处理错误 / 路径操作配置 / jsonable_encoder

    处理错误 raise HTTPException() from fastapi import FastAPI, HTTPException app = FastAPI() items = {"foo" return {"item" : items[item_id]} 触发 HTTPException 时,可以用参数 detail 传递任何能转换为 JSON 的值,不仅限于 str。 自定义响应头 HTTPException(headers=xxx) @app.get("/items-header/{item_id}") async def read_item_header(item_id 的 handler,自定义处理 from starlette.exceptions import HTTPException as StarletteHTTPException # 跟 fastapi : HTTPException(status_code=418, detail="Nope! I don't like 3.")

    1.5K10编辑于 2022-01-07
  • 来自专栏九陌斋

    FastAPI从入门到实战(12)——错误处理

    错误提示是非常重要的,比如权限控制、资源控制等场景,需要服务器返回给用户错误提示,包括状态码和提示等内容,所以本文就主要记录FastAPI里的错误处理相关的内容 抛出一个HTTPException = "MinChess": return HTTPException(status_code=404, detail="not found") return { = "MinChess": raise HTTPException( status_code=404, detail="Not Found = 2: raise HTTPException(detail="请输入MinChess!" = 2: raise HTTPException(detail="请输入MinChess!"

    2.1K10编辑于 2022-12-27
  • 来自专栏青年码农

    【Nest教程】为项目增加个自定义过滤器

    filters,文件夹下新建http-exception.filter.ts文件,内容如下: import { ArgumentsHost, Catch, ExceptionFilter, HttpException , HttpStatus, Logger, } from '@nestjs/common'; @Catch(HttpException) export class HttpExceptionFilter implements ExceptionFilter { catch(exception: HttpException, host: ArgumentsHost) { const ctx code url: request.originalUrl, // 错误的url地址 }; const status = exception instanceof HttpException 它告诉 Nest这个特定的过滤器正在寻找 HttpException 而不是其他的。catch() 方法有两个参数。

    1.1K1511发布于 2021-01-18
  • 来自专栏全栈程序员必看

    Android MVP+RxJava+Retrofit (3) MVP+RxJava+Retrofit

    ) { HttpException httpException = (HttpException) e; errorMsg = convertStatusCode httpException) { String msg; if (httpException.code() >= 500 && httpException.code () < 600) { msg = "服务器处理请求出错"; } else if (httpException.code() >= 400 && httpException.code () < 500) { msg = "服务器无法处理请求"; } else if (httpException.code() >= 300 && httpException.code () < 400) { msg = "请求被重定向到其他页面"; } else { msg = httpException.message

    1.5K20发布于 2021-04-07
  • 来自专栏雷子说测试开发

    FastAPI 学习之路(五十五)将token存放在redis

    首先我们看下之前基于jwt认证token的代码 from fastapi import Depends,status,HTTPException from pydantic import BaseModel token) return user def get_current_user(token: str = Depends()): credentials_exception = HTTPException authenticate_user(fake_users,tokendata.username,tokendata.password) if not user: raise HTTPException from fastapi import APIRouter,status from fastapi import Depends,HTTPException from models.crud import (status_code=200, detail="请勿重复登陆") else: raise HTTPException(status_code=200, detail="密码错误

    2K10发布于 2021-10-12
  • 来自专栏用户1069690的专栏

    不更新TP框架的情况下防止getshell漏洞

    .)*$/', \think\Request::instance()->controller())) { throw new \think\exception\HttpException preg_match('/^[A-Za-z](\w|\.)*$/', $controller)) { throw new HttpException(404, 'controller not exists ('/^[A-Za-z](\w|\.)*$/', \think\facade\Request::controller())) { throw new \think\exception\HttpException preg_match('/^[A-Za-z](\w|\.)*$/', $request->controller())) { throw new \think\exception\HttpException preg_match('/^[A-Za-z][\w|\.]*$/', $controller)) { throw new HttpException(404, 'controller not exists

    1.1K30编辑于 2022-05-18
  • 来自专栏码匠的流水账

    聊聊HttpClient的HttpRoutePlanner

    * * @return the route that the request should take * * @throws HttpException in final HttpHost host, final HttpRequest request, final HttpContext context) throws HttpException host.getSchemeName()); } catch (final UnsupportedSchemeException ex) { throw new HttpException * * @throws HttpException may be thrown if overridden */ protected HttpHost determineProxy HttpHost target, final HttpRequest request, final HttpContext context) throws HttpException

    43920编辑于 2023-10-16
  • 来自专栏mySoul

    优雅 | koa处理异常

    // core/http-exception.js class HttpException extends Error{ constructor(msg = '服务器异常', errorCode = super(); this.msg = msg; this.code = code; this.errorCode = errorCode; } } module.export = HttpException require('koa') const Router = require('router') const app = new koa() const router = new Router() const {HttpException ctx.request.query // 我们主动抛出一个错误 if(true){ // 主要改写这里,创建新的异常 const error = new HttpException app.use(router.routes()) app.listen(3000) 再次改写中间件,判断异常是否属于此异常的对象 // middlewares/catcherror.js const {HttpException

    1.2K20发布于 2020-07-22
  • 来自专栏雷子说测试开发

    FastAPI 学习之路(二十九)使用密码和 Bearer 的简单 OAuth2

    我们写一个登录接口,默认返回token和token_type from fastapi import FastAPI, Depends,status,HTTPException from pydantic oauth2_scheme)): user = fake_decode_token(token) print(user) if not user: raise HTTPException user_dict = fake_users.get(form_data.username) print(user_dict) if not user_dict: raise HTTPException fake_hash_password(form_data.password) if not hashed_password == user.hashed_password: raise HTTPException get_current_active_user(current_user: User = Depends(get_current_user)): if current_user.disabled: raise HTTPException

    1K40发布于 2021-08-25
  • 来自专栏Nest.js 实战系列

    Nest.js 实战 (一):使用过滤器优雅地统一处理响应体

    @ApiProperty({ type: Number, description: '时间戳', default: 1720685424078 }) timestamp: number; } HttpException 异常过滤器 创建一个异常过滤器,它负责捕获作为 HttpException 类实例的异常,并为它们设置自定义响应逻辑。 在 src 目录中新建 /filter/http-exception.filter.ts 文件: import { ArgumentsHost, Catch, ExceptionFilter, HttpException 它告诉 Nest这个特定的过滤器正在寻找 @Catch(HttpException) export class HttpExceptionsFilter implements ExceptionFilter { catch(exception: HttpException, host: ArgumentsHost) { // 获取上下文 const ctx = host.switchToHttp

    85310编辑于 2025-08-14
  • 来自专栏码匠的流水账

    再聊HttpClient的NoHttpResponseException

    * @throws HttpException in case of HTTP protocol violation or a processing * problem. final HttpClientConnection conn, final HttpContext context) throws IOException, HttpException final IOException ex) { closeConnection(conn); throw ex; } catch (final HttpException * @throws HttpException in case of HTTP protocol violation or a processing * problem. * @throws HttpException in case of HTTP protocol violation or a processing * problem.

    63510编辑于 2024-04-28
领券