繁体   English   中英

python:从函数返回异常

[英]python: return exception from function

假设我具有以下功能:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM