给定一个回溯错误日志,我并不总是知道如何捕获一个特定的异常.
我的问题一般是,如何确定要编写哪个"except"子句以处理某个异常.
例1:
File "c:\programs\python\lib\httplib.py", line 683, in connect
raise socket.error, msg
error: (10065, 'No route to host')
Run Code Online (Sandbox Code Playgroud)
例2:
return codecs.charmap_encode(input,errors,encoding_table)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd7 in position(...)
Run Code Online (Sandbox Code Playgroud)
抓住第二个例子是显而易见的:
try:
...
except UnicodeDecodeError:
...
Run Code Online (Sandbox Code Playgroud)
我如何抓住第一个错误?
查看堆栈跟踪。引发异常的代码是:raise socket.error, msg。
所以你的问题的答案是:你必须抓住socket.error。
import socket
...
try:
...
except socket.error:
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2142 次 |
| 最近记录: |