大家好,欢迎来到IT知识分享网。
在编写Python程序时,时常会遇到代码执行错误和异常,下文就将对Python中的错误和异常作详细说明。
1.错误和异常的概念
- 错误
Python中的错误主要分为两种,即语法错误和逻辑错误。
- 语法错误: 语法错误是指代码不符合解释器或编译器的语法;
在程序执行过程中,python解释器会检查你的代码是否存在语法错误,如果程序出错,Python解释器会指出出错的那行,并且在最先出错的地方标记了一个小小的箭头
- 逻辑错误:逻辑错误是指不完整或不合法的输入或计算出现问题,比如,传参时参数的不合理,除0操作。
注:零是不能作为除数的,程序写法可能没有问题,但是逻辑存在问题,这就是一种逻辑错误
- 异常
异常通常指执行Python程序的过程中出现问题导致程序无法执行,即便python的程序的语法是正确的,在运行它的时候,也有可能发生错误,程序运行期检测到的错误被称为异常,主要分为下面两种情况:
- 程序遇到逻辑或者算法问题;
- 程序运行的过程中计算机错误,如内存溢出或者IO错误
异常都有不同的类型出现,这些错误类型都作为信息的一部分打印出来,例子中的类型有ZeroDivisionError,TypeError,IndexError。每一种错误类型,都有相应的异常类
- 错误和异常的区别
- 错误是指代码运行前语法或者逻辑错误,其中,语法的错误在代码执行前必须修改,而逻辑错误在运行前无法被识别;
- 异常是Python程序执行过程中出现问题,一般是指不完整不合法的输入或者计算出现错误, 异常出现需要知道异常的生产和如何来处理异常
- assert(断言)用于判断一个表达式,在表达式条件为false的时候触发异常;
2.如何处理异常
- try/except语句
异常的处理包括异常的捕获和异常的处理,一般可以使用try/except语句捕获处理异常:
# 请看下面的例子
while True:
try:
receiver = int(input("请输入一个数值:"))
break
except ValueError:
print('你输入的不是数字,请再次输入')
IT知识分享网
上面的代码执行流程如下:
- 称执行try下的语句块;
- 如果输入的是数字,没有发生异常,则except语句不会执行,try中的语句执行后结束(break)
- 如果输入的是非数字,那么将发生异常,那么在try中发生异常下面的语句不会被执行。如果触发的异常是except后面指定的异常,except下面的语句将会被执行;
- 如果一个异常没有匹配任何except(except语句可以有多个)指定的异常,那么这个异常会传递给上层中的try语句;
- 2.try/except…else语句
在Python中,try/except语句有一个可选的else语句,如果使用这个语句,那么必须放在所有的except子名之后。else语句交在try子句执行没有发生作何的异常后执行。
- try/except..else…finally
try-finally 语句无论是否发生异常都将执行最后的代码。
IT知识分享网def divide(x, y):
try:
result = x / y
except ZeroDivisionError:
print("division by zero!")
else:
print("result is", result)
finally:
print('来来来来来来来来来来')
divide(2,1)
divide(2,0)
divide('2','3')
- 抛出异常(raise)
Python 使用 raise 语句抛出一个指定的异常:
x = int(input('请输入一个数值:'))
if x > 25:
raise Exception(f'x 不能大于 25, x 的值为: {x}')
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/13453.html