处理消歧错误?
Handling DisambiguationError?
我正在使用 wikipedia
库,我想将 DisambiguationError
作为异常处理。我的第一次尝试是
try:
wikipedia.page('equipment') # could be any ambiguous term
except DisambiguationError:
pass
执行期间未到达第 3 行。一个更普遍的问题是:如何找到特定于库的错误类型 class 像这样?
这是一个工作示例:
import wikipedia
try:
wikipedia.page('equipment')
except wikipedia.exceptions.DisambiguationError as e:
print("Error: {0}".format(e))
关于你更笼统的问题how can I find the error type for a library-specific class like this?
,我的技巧其实很简单,我倾向于捕获异常然后打印__class__
,这样我就知道具体的异常是什么需要捕获。
在此处确定要捕获哪个特定异常的示例:
try:
0/0
except Exception as e:
print("Exception.__class__: {0}".format(e.__class__))
这将打印 Exception.__class__: <type 'exceptions.ZeroDivisionError'>
,所以我知道 exceptions.ZeroDivisionError
将是要处理的确切异常,而不是更通用的东西
我正在使用 wikipedia
库,我想将 DisambiguationError
作为异常处理。我的第一次尝试是
try:
wikipedia.page('equipment') # could be any ambiguous term
except DisambiguationError:
pass
执行期间未到达第 3 行。一个更普遍的问题是:如何找到特定于库的错误类型 class 像这样?
这是一个工作示例:
import wikipedia
try:
wikipedia.page('equipment')
except wikipedia.exceptions.DisambiguationError as e:
print("Error: {0}".format(e))
关于你更笼统的问题how can I find the error type for a library-specific class like this?
,我的技巧其实很简单,我倾向于捕获异常然后打印__class__
,这样我就知道具体的异常是什么需要捕获。
在此处确定要捕获哪个特定异常的示例:
try:
0/0
except Exception as e:
print("Exception.__class__: {0}".format(e.__class__))
这将打印 Exception.__class__: <type 'exceptions.ZeroDivisionError'>
,所以我知道 exceptions.ZeroDivisionError
将是要处理的确切异常,而不是更通用的东西