假设我有以下功能:
def test():
...
if x['error']:
raise
无论是否定义了x['error']
,这都会引发异常。
相反,如果我尝试这个,它不会抛出任何异常:
def test():
...
try:
if x['error']:
raise
except:
return
如何测试特定值并在定义时返回异常,如果未定义则返回成功?
def test():
...
if x.get(‘error’):
raise
您可以使用字典内置的get
函数来避免无意中引发错误。如果指定键的值不存在而不是抛出异常,则Get将返回None
。
试试这个
def check_not_exist(d,k):
#if keys exists in dict,raise it
if k in d:
raise
else:
return True
如果要将错误返回为字符串:
>>> def test():
try:
if x['error']:raise
except Exception as err:
return err
>>> test()
NameError("name 'x' is not defined",)
如果您想要发生错误:
>>> def test():
try:
if x['error']:raise
except:
raise
>>> test()
Traceback (most recent call last):
File "<pyshell#20>", line 1, in <module>
test()
File "<pyshell#19>", line 3, in test
if x['error']:raise
NameError: name 'x' is not defined