Python入门(六):异常处理

何为异常

异常(Exception)【或者说Bug】对于一个程序员来说是非常熟悉的词。编写的程序总会因为这样或那样的原因报错,如下图所示:
在这里插入图片描述
当遇到程序异常时,我们需要冷静下来,仔细寻找程序出错的地方并加以改正,使得程序的输出符合我们的预期。

异常类型

在Python中,我们通过使用命令dir(__builtin__)来查看所有的异常类型,如图所示:
在这里插入图片描述
在此,我们列举几个常见的异常并加以具体描述:

  1. BaseException:所有异常的基类
  2. Exception:常规异常的基类
  3. AttributeError:对象不存在此属性
  4. IndexError:序列中无此索引
  5. IOError:输入/输出操作失败
  6. KeyError:映射中不存在此键
  7. NameError:找不到变量
  8. SyntaxError:语法错误
  9. TypeError:对类型无效的操作
  10. ValueError:传入无效的参数
  11. ZeroDivisionError:除数为0

异常处理

Python使用try-except语句进行异常处理。

基本使用

基本使用大致可分为三类:

  1. 指定单个异常类型,如下所示:
try:
	n1=int(input("Enter a number:")
	n2=int(input("Enter a number:")
	print(n1/n2)
except ZeroDivisionError: #除数为0的错误类型
	print("The second number cannot be zero!")

2.指定多个异常类型,如下所示:

try:
	n1=int(input("Enter a number:")
	n2=int(input("Enter a number:")
	print(n1/n2)
except (ZeroDivisionError,ValueError): #指定多个异常类型,也可以用多个except语句
	print("The second number cannot be zero!")

3.不指定异常类型,如下所示:

try:
	n1=int(input("Enter a number:")
	n2=int(input("Enter a number:")
	print(n1/n2)
except:
	print("The second number cannot be zero!")

此外,我们常常需要了解异常类型,因此常用到as语句查看其异常情况

try:
	n1=int(input("Enter a number:")
	n2=int(input("Enter a number:")
	print(n1/n2)
except Exception as err: 
	print("Something went wrong!")
	print(err)

高级使用

try-except-else-finally

异常处理的高级使用的原理和循环的增强形式一样,else语句都是对程序正常运行的额外奖励,finally语句则一定会执行。
在这里插入图片描述

循环(break)

异常处理中可以在某一位置添加break语句,增强其程序功能。如图所示
此处图片来源于NJU大壮老师的慕课课程:利用Python进行数据分析,并且墙裂安利):
在这里插入图片描述
在这里插入图片描述

上下文管理器及with语句

在Python文件打开中,常用with语句或异常处理语句进行操作。
此处图片来源于NJU大壮老师的慕课课程:利用Python进行数据分析,并且墙裂安利
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值