Skip to content

错误处理

  • python 处理程序在运行中出现的异常和错误

捕获异常

  • 通过try/except 语句捕获异常
python
try:
    a=1/0
except ZeroDivisionError as e:
    print('除数不能为0',e.args)  # ('divisor cannot be zero',)
except ValueError:
    print('ValueError')  # ValueError 除数不能为0
except Exception:
    print('其他错误')
finally:
    print('finally')  # 无论是否有异常,finally 语句都会执行

抛出异常

  • 通过raise 语句主动抛出异常
python
def func1(x):
    if x<0:
        raise Exception('x不能小于0')
    return x*2

断言

  • 断言的使用格式:assert 条件, 错误信息
python
# 如果条件为假,抛出 AssertionError 异常
assert 1==2, '1 不等于 2'

# 等价于
if 1!=2:
    raise AssertionError('1 不等于 2')

主程序中拦截异常

python

def func1(num):
    if num < 0:
        raise Exception("参数不能小于0")

if __name__ == '__main__':
    try:
        func1(2)
    except Exception as e:
        print("未知错误 %s" % e)