MCPcopy Create free account
hub / github.com/ChenYCL/discord-send / try_except_code

Function try_except_code

utils.py:10–56  ·  view source on GitHub ↗

处理python的异常,以及requests请求异常。在需要的函数名前面使用装饰器语法@try_except_code调用 捕获requests异常时,需要在使用地方的响应后面加一句response.raise_for_status()来检查响应的状态码,如果状态码表明请求失败,则抛出一个HTTPError异常,然后就可以用此函数捕获异常。如果状态码表明请求成功,则什么也不会发生,函数会直接返回

(function)

Source from the content-addressed store, hash-verified

8
9
10def try_except_code(function):
11 """处理python的异常,以及requests请求异常。在需要的函数名前面使用装饰器语法@try_except_code调用
12 捕获requests异常时,需要在使用地方的响应后面加一句response.raise_for_status()来检查响应的状态码,如果状态码表明请求失败,则抛出一个HTTPError异常,然后就可以用此函数捕获异常。如果状态码表明请求成功,则什么也不会发生,函数会直接返回
13 """
14
15 def wrapper(*args, **kwargs):
16 try:
17 result = function(*args, **kwargs)
18 except Exception as e:
19 # 获取异常信息
20 exc_type, exc_obj, exc_tb = sys.exc_info()
21 # 获取文件名和行号
22 file_name = traceback.extract_tb(exc_tb)[-1][0]
23 line_number = traceback.extract_tb(exc_tb)[-1][1]
24 # 输出错误信息
25 print("出错文件:", file_name)
26 print("出错位置:", line_number, '行')
27 print("出错类型:", exc_type.__name__)
28 print("错误信息:", str(e))
29 result = None
30 except requests.exceptions.RequestException:
31 # 处理 requests 异常
32 exc_type, exc_obj, exc_tb = sys.exc_info()
33 # 获取文件名和行号
34 file_name = traceback.extract_tb(exc_tb)[-1][0]
35 line_number = traceback.extract_tb(exc_tb)[-1][1]
36 # 输出错误信息
37 print("出错文件:", file_name)
38 print("出错位置:", line_number, '行')
39 print("出错类型:", exc_type.__name__)
40 print("错误信息:", str(exc_obj))
41 result = None
42 except requests.exceptions.HTTPError as e:
43 # 处理 HTTP 异常
44 exc_type, exc_obj, exc_tb = sys.exc_info()
45 # 获取文件名和行号
46 file_name = traceback.extract_tb(exc_tb)[-1][0]
47 line_number = traceback.extract_tb(exc_tb)[-1][1]
48 # 输出错误信息
49 print("出错文件:", file_name)
50 print("出错位置:", line_number, '行')
51 print("出错类型:", exc_type.__name__)
52 print("错误信息:", str(e))
53 result = None
54 return result
55
56 return wrapper
57
58
59@try_except_code

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected