Python高级:异常概念及处理,异常的抛出与传递


前言

···异常处理,英文名为exceptional handling, 是代替日渐衰落的error code方法的新法,提供error code 所未能具体的优势。异常处理分离了接收和处理错误代码。这个功能理清了编程者的思绪,也帮助代码增强了可读性,方便了维护者的阅读和理解。 异常处理(又称为错误处理)功能提供了处理程序运行时出现的任何意外或异常情况的方法。异常处理使用 try、catch 和 finally 关键字来尝试可能未成功的操作,处理失败,以及在事后清理资源。
异常处理,是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件)。


一、异常是什么?

程序在执行的过程中产生的错误称之为异常。
‘上图’
在这里插入图片描述

二、常见的异常错误

1.逻辑错误

如下(示例):
在这里插入图片描述
在这里插入图片描述

2.异常处理try-except

语法格式:
在这里插入图片描述
在这里插入图片描述

3.try-except处理过程

在这里插入图片描述

三.异常处理(try-except else finally)

1.else与finally

在这里插入图片描述
在这里插入图片描述

for i in range(3):
    try:
        num = int(input("请输入一个数字"))
        print(10 / num)
    except ValueError:
        print('值错误')
    except:
        print('其他异常')
    else:
        print('else自动被执行')
    finally:
        print('finally自动被执行')

在这里插入图片描述

四.拓展:

try:
链接数据库
进行数据库操作
如果是查询操作,对查询结果进行处理
except
数据库报错
finally
关闭数据库


五.异常的抛出与传递

01.异常的抛出raise语句

除了系统遇到的错误产生异常外,我们也可以使用raise产生异常。
1.raise异常类名
2.raise异常类对象
3.raise
示例

# 抛出具体异常实例
try:
    a = input("输入一个数:")
    # 判断用户输入的是否为数字
    if (not a.isdigit()):
        raise ValueError("a 必须是数字!")
except ValueError as e:
    print("引发异常:", e)

# raise抛出一般异常实例
try:
    a = input("输入一个数:")
    # 判断用户输入的是否为数字
    if (not a.isdigit()):
        raise Exception("a 必须是数字!")
except Exception as e:
    print("引发异常:", e)

# raise不指定异常示例

try:
    a = input("输入一个数:")
    # 判断用户输入的是否为数字
    if (not a.isdigit()):
        raise
except Exception as e:
    print("引发异常:", e)

在这里插入图片描述

02.assert断言语句

··assert语句又称断言,指的是期望用户满足指定的条件
··当用户定义的约束条件不满足的时候,他会触发AssertionError异常,所以assert语句可以当做条件式的raise语句
示例:
在这里插入图片描述

print('1:',1==1)
assert 1==1,'有问题'
print('2:',1==2)
assert 1==2,'报错了'
print('3:',333)

在这里插入图片描述

03.异常的传递

~~当函数持续出现异常,会将异常传递给函数的调用一方
~~如果传递到主程序,仍然没有异常处理,程序才会被终止。
示例:

def demo1():
    return int(input("请输入一个整数:"))


def demo2():
    return demo1()


try:
    print("输入正确:", demo2())
except ValueError:
    print("请输入正确的整数")
except Exception as result:
    print("未知错误 %s" % result)

在这里插入图片描述

04 with和as环境安装器

在这里插入图片描述

05打开和关闭文件的异常处理

~~Python2.5开始,引入with,with语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都要执行必要的“清理”操作,释放资源
在这里插入图片描述
在这里插入图片描述

06with和as的执行原理

在这里插入图片描述
在这里插入图片描述

总结

这里对文章进行总结:
第一部分围绕异常的概念,常见的异常,如何捕捉异常。
第二部分围绕异常的抛出和自定义异常,以及with和as环境安装器的原理
注:本文是对老师上课的总结,也是为了方便以后反复,如果对你也有所帮助,那就是最好的了(* ̄︶ ̄)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值