关于 try catch
的错误类型捕获,
- 可以所有的except都捕获,使用Exception来处理,这时所有的错都会进如到err中,到except的流程
- 仅仅对已知的报错类型进行捕获,比如
requests.exceptions.BaseHTTPError
其他的报错都不会被处理,为保持严谨就需要把所有的异常情况都拿出来分别处理,如果出现未知的错误类型就会导致During handling of the above exception, another exception occurred:
的报错
关于这两张捕获错误的方式具体使用情况怎么区分呢?个人认为既然知道这里要使用try来处理可能的报错,直接使用Exception来捕获报错就可以了,我是站方法1的,你怎么看呢?
import requests
def f():
result = 1
try :
sss = requests.get('http://localhost/')
if sss.ok:
print(sss.text)
result = 2
sss.raise_for_status()
except (requests.exceptions.BaseHTTPError) as err:
print(err)
print("2222211")
return 1
finally:
print('finally')
return 2
f()