如何使用sentry处理fastapi错误?

2024-09-30 14:34:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下功能,我正在尝试处理错误,并将其发送给哨兵

import sentry_sdk
...
...
...
def create_orders(
    orders: orders_schema.OrderCreate
):
    try:
        query = "INSERT INTO orders VALUES (nextval('orders_id_seq'), :price, :currency, :created_on, :note)"
        values = {
            "price": orders.price,
            "currency": orders.currency,
            "created_on": datetime.utcnow(),
            "note": orders.note
        }
    except Exception as err:
        sentry_sdk.capture_exception(err)
    return database.execute(query, values=values)

下面是调用该函数的路由器端点

@router.post("/orders/create", response_model=orders_schema.OrderCreate)
async def create_new_order(
    orders: orders_schema.OrderCreate
):

    await crud.create_orders(orders)
    return {**orders.dict()}

Sentry集成的工作原理与我测试接收到的其他一些未处理的错误事件一样,但现在我想实际使用Sentry来实现我所需要的功能;这有助于管理已处理的错误

但当我试图向api端点发送错误的值或错误的键时,不会向sentry发送任何内容

我是否遗漏了什么,或者我该怎么做才能发送错误


Tags: 功能schemadef错误createsdkqueryprice