异常概念及处理
前言
···异常处理,英文名为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环境安装器的原理
注:本文是对老师上课的总结,也是为了方便以后反复,如果对你也有所帮助,那就是最好的了(* ̄︶ ̄)