python异常和错误的区别_什么是异常?异常和错误的区别?为什么用异常

异常和错误

写程序的时候可能会犯错,有些错是语法层面的,无法去执行,这就是错误。有些错误语法上符合规范,但由于自身逻辑失误或者其他原因造成运行时出现故障,这就是异常,异常又称为运行时错误。不管是错误还是异常(如果未处理)都会导致程序停止运行。

错误举例:你定义变量用数字开头;你用echo来输出变量而不是print,这些在python中这是不允许的。

异常举例:一个列表lis有2个元素,你却写lis[2]让他输出第3个元素;一个字典只有key1你却写dict['key2']让他输出。

为什么学习异常处理

假设要读取10000个文件的数据,第1个文件名写错了但其他9999个文件都是ok的,可偏偏因为第1个文件读取错误就导致程序挂掉,本来能成功读取9999个的机会也被扔掉了。这个事情就很不划算。如果10000个文件你不知道哪个文件名不对呢?岂不是每一个都要判断一下文件是否存在,这也会增加代码量。

所以,此情此景就得用异常这种机制来处理了。

初步感受下语法

一个简单的案例感受下效果,具体的语法后面会介绍。情景:用10除以列表里每一个元素得到一个新的列表。前提是原列表有个0。我们看下加异常和不加异常的效果。

# -*- coding: utf-8 -*-

lis = [1,0,2,3,4,5]

# 异常处理

for i in lis:

try:

print(10/i)

except Exception as e:

print(e,'除0是不行的')

else:

pass

print('-----------------')

for i in lis:

print(10/i)

10.0

division by zero 除0是不行的

5.0

3.3333333333333335

2.5

2.0

-----------------

10.0

Traceback (most recent call last):

File "D:/pyscript/py3script/python66/python66.py", line 17, in

print(10/i)

ZeroDivisionError: division by zero

什么时候用异常处理

作为新手可能会想为了让程序不挂掉我在每一句代码上都加上异常。这样是不合理的,过犹不及。异常检测也会消耗计算机的资源影响程序的效率。

在程序中适合加异常的是那些你无法100%预知结果可能会错的地方。比如爬虫程序抓取一个网页可能会出现网络断了,此时请求网页的过程可以加个异常处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值