python基础知识——异常

1. 什么是异常

  在程序运行中出现的错误称之为异常,如:使用了未创建的变量名或索引,两个不同类型的数据相加…

  • 处理异常 程序运行时出现异常,目的并不是让我们的程序直接终止!Python是希望在出现异常时,我们可以编写代码来对异常进行处理

在这里插入图片描述
异常处理语法:

try:
    pass
except:
    pass
else:
    pass
finally:
    pass

通常使用:

try:
    pass
except:
    pass

2. 异常传播

  • 在函数中出现异常时,在函数中对异常进行了处理,则异常不会在进行传播。如果函数中没有对异常进行处理,则异常会继续向函数调用传播。

函数未做异常处理:

def fun():
    res = random.randint(1,3)
    print(res)

fun()

结果:
在这里插入图片描述
函数做了异常处理

def fun():
    try:
        res = random.randint(1,3)
        print(res)
    except:
        print('代码有问题')
fun()

结果:
在这里插入图片描述

  • 如果函数调用处处理了异常,则不再传播异常,如果没有处理则继续向调用处传播。直到传递到全局作用域(主模块)如果依然没有处理,则程序终止,并显示异常信息。
    代码:
import random
def fun():
        res = random.randint(1,3)
        print(re)
# 函数调用未做异常处理
fun()

结果:
在这里插入图片描述
代码:

import random
def fun():
        res = random.randint(1,3)
        print(re)
# 函数调用做了异常处理
try:
    fun()
except:
    print('代码出错')

结果:
在这里插入图片描述

  • 当程序运行过程中出现异常以后,所有异常信息会保存到一个异常对象中。而异常传播时,实际上就是异常对象抛给了调用处

3. 异常对象

try语句
    try:
        代码块(可能出现错误的语句)
    except 异常类型 as 异常名:
        代码块(出现错误以后的处理方式)
    except 异常类型 as 异常名:
        代码块(出现错误以后的处理方式)
    except 异常类型 as 异常名:
        代码块(出现错误以后的处理方式)
    ....
    else:
        代码块(没出错时要执行的语句)
        
    finally:
        代码块(是否出错该代码块都会执行)
     try是必须的 else有没有都可以
     except和finally至少有一个

总结

本文为学习笔记,转载请标明出处,本文仅供交流学习,请勿用于非法途径,希望本文对大家有帮助。

仅是个人意见,如有不足之处或者侵权,请留言

posted @ 2021-04-09 15:11  wakeyo_J  阅读(166)  评论(0)    收藏  举报