16-Python异常处理和正则表达式

1.异常捕获

1.1 什么是异常捕获

让程序执行过程中出现异常的时候不崩溃可以继续运行。

注意:不是任何时候都要使用异常捕获,是在你明明知道某个位置可能会出现异常,又不想让程序崩溃的时候才使用

1.2 异常捕获的语法

语法一:获取所有异常
try:
代码段1
except:
代码段2

说明:
try、except - 关键字,固定写法
: - 固定写法
代码段1 - 和try保持一个缩进的一条或者多条语句; 可能会出现异常的代码(需要捕获异常的代码)
代码段2 - 出现的异常被捕获到了,需要执行的代码

执行过程:
先执行代码段1,如果执行执行过程中出现异常直接执行代码段2;如果代码段1中没有异常代码段2不会执行

练习:输入年龄,如果输入有误提示年龄输入有误的信息

try:
     age = int(input('请输入年龄:'))
     print('输入完成!')
 except:
     print('年龄输入有误!')

try:
    # age = int(input('请输入年龄:'))
    print({
   'name': '张三'}['age'])
    print([1, 2, 3][10])
except:
    print('出现异常')

语法二:针对指定类型的异常进行捕获
try:
代码段1
except 异常类型:
代码段2

执行过程:先执行代码段1,如果代码段1出现异常,判断出现的异常的类型和except后面的异常类型是否一致,如果一致程序不崩溃直接执行代码段2,不一致程序直接崩溃。

[10, 20][100]   # IndexError
{
   'name': '张三'}['age']   # KeyError
try:
    print({
   'name': '张三'}['age'])
    print([10, 20][100])
except KeyError:
    print('发生异常!')

语法三:同时捕获多种异常,针对不同的异常做相同的处理
try:
代码段1
except (异常类型1, 异常类型2,…):
代码段2

语法四:同时捕获多种异常,针对不同的异常做不同的处理
try:
代码段1
except 异常类型1:
代码段11
except 异常类型2:
代码段22
except 异常类型3:
代码段33

1.3 finally关键字

在所有异常捕获的语法结构的后面都可以添加finally关键字:
try:
代码段1
except:
代码段2
finally:
代码段3

代码段3无论什么情况都会执行(代码段1无论发生什么事情,如果在函数中的try中就算return了也会执行)

try:
    print([10, 20, 30][100])
    print('=======')
except KeyError:
    print('捕获到异常')
finally:
    print('写遗书!')
print('其他语句'<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值