build.app.hooks.error   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 20
dl 0
loc 30
rs 10
c 0
b 0
f 0
wmc 4

1 Function

Rating   Name   Duplication   Size   Complexity  
A broad_exception_handler() 0 21 4
1
import json
2
from http import HTTPStatus
3
4
from flask import current_app, jsonify
5
from pydantic import ValidationError
6
from werkzeug.exceptions import HTTPException
7
8
9
def broad_exception_handler(e: Exception):
10
    # TODO 에러를 세분화해서 잡는 것을 추천합니다.
11
12
    if isinstance(e, HTTPException):
13
        message = e.description
14
        code = e.code
15
16
    elif isinstance(e, ValidationError):
17
        message = json.loads(e.json())
18
        code = HTTPStatus.BAD_REQUEST
19
20
    else:
21
        message = ""
22
        code = HTTPStatus.INTERNAL_SERVER_ERROR
23
24
        if current_app.debug:
25
            import traceback
26
27
            traceback.print_exc()
28
29
    return jsonify({"error": message}), code
30