python:从函数返回异常

问题描述 投票:0回答:3

假设我有以下功能:

def test():
  ...
  if x['error']:
    raise

无论是否定义了x['error'],这都会引发异常。

相反,如果我尝试这个,它不会抛出任何异常:

def test():
  ...
  try:
    if x['error']:
      raise
  except:
    return

如何测试特定值并在定义时返回异常,如果未定义则返回成功?

python exception
3个回答
1
投票
def test():
  ...
  if x.get(‘error’):
    raise

您可以使用字典内置的get函数来避免无意中引发错误。如果指定键的值不存在而不是抛出异常,则Get将返回None


1
投票

试试这个

def check_not_exist(d,k):
   #if keys exists in dict,raise it
   if k in d:
     raise
   else:
     return True

1
投票

如果要将错误返回为字符串:

>>> 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
© www.soinside.com 2019 - 2024. All rights reserved.