【day27】异常处理try...except...Exception...else...finally

时间:2022-01-27 20:34:14
我们知道,代码中如果出现了错误,程序就会停止运行并报错。而如果我们不想程序停下,又要程序报错,怎么办呢?python提供了异常处理功能。   一、python的错误类型: NameError: 尝试访问一个未声明的变量 ValueError:传给函数的参数类型不正确 ,比如给int()函数传字符串 IndexError:索引出序列范围 AttributeError:尝试访问位置的对象属性 ZeroDivisionError:除数为0 StopInteration:停止迭代 KeyError:请求一个不存在的字典关键字 SyntaxError:语法错误   二、异常处理 代码如下: num = input('number: ') try: int(num) except ValueError: #如果遇到ValueError错误,就运行该代码 print('请输入数字') except Exception as e: #如果碰到ValueError意外的所有错误,就运行此代码 print(‘e’) else: #程序不抱错,执行此代码 print('else被执行') finally: #无论程序是否报错,都执行此代码 print('finally') 【day27】异常处理try...except...Exception...else...finally 需要注意的是:try:passexcep:#这段代码中没有指出要捕获的错误,相当于所有的错误都捕获,但不返回,直接passpass 3、异常处理的特殊方法:断言:assert 语法:assert expression【,reason】 先判断表达式expression是否为真。真,不做什么;假,报错reason如:>>> assert 1==1>>> assert 1==2,"1 不等于 2!"Traceback (most recent call last):  File "<stdin>", line 1, in <module>AssertionError: 1 不等于 2! 触发异常:raiseraise [Exception [, args [, traceback]]]#定义异常:def mye(l):  if l < 4:    raise Exception("aaaa",ls)    #触发异常  try:    mye(1)  except Exception:    print(1)  else:    print(2)  finally:    print(3)