Python基础:异常

当python检测到一个错误时,解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的“异常”。

1、捕获异常

语法:

try:
    可能发生错误的代码
except:
    如果出现异常之后要做的事情

捕获指定异常:

try:
    可能发生错误的代码
except  异常类型:
    如果捕获到该异常类型执行的代码

# 如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常

try:
  print(num)
except NameError:
  print('有错误')

捕获多个指定异常:

try:
    print(1/0)
except (NameError,ZeroDivisionError):
    print('有错误')

捕获异常描述信息:

try:
    print(num)
except NameError as result:
    print(result)

捕获所有异常:Exception是所有程序异常类的父类

try:
    print(num)
except Exception as result:
    print(result)

 

2、异常的else

else表示的是如果没有异常要执行的代码

try:
    print('执行时try里没报错就会执行后面的else')
    # a = 1/0
except:
    print('报错了,记录下')
else:
    print('try里面的代码正常执行后,我会执行')

 

3、异常的finally

finally表示的是无论是否异常都要执行的代码

try:
    l = [2, 3]
    print(l[3])
    a = 2/0
except BaseException as e:   # BaseException是所有异常的基类
    print(f'代码报错了:{e}')
finally:
    print('不管try或者except里面执行的结果如果,这里都要执行')

 

4、抛出异常

指的是我猜测这些代码可能会报错,但是我没有能力去处理,或者说我不想处理。这时候可以异常抛出给调用方,由调用方根据业务进行处理

def add(a, b):
    if type(a) == type(b):
        return a + b
    else:
        raise TypeError(f'{a}和{b}类型不一致')
        # raise BaseException(f'{a}和{b}类型不一致')

 

posted @ 2023-03-17 15:15  阳光倾林  阅读(50)  评论(0编辑  收藏  举报