day13-异常捕获和学生管理系统

===============异常捕获=============

1.异常捕获的作用:

当程序发送异常的时候,默认情况下程序会崩溃,不能接着往后执行,捕获异常就是让程序发生异常的时候不崩溃,继续往后执行

1)什么时候使用:

一般在明明知道代码会出现异常,但又不能通过修改代码去避免的时候

2.捕获异常的语法:

语法1:(捕获所以异常)

try:
代码块1
except:
代码块2

2)说明:

try,except -- 关键字,固定写法

代码块1 -- 需要捕获异常的代码

代码块2 -- 捕获异常后需要执行的代码

3)执行过程:

先执行代码块1,如果执行过程出现异常,程序不会崩溃,而是!直接!执行代码块2,但如果没有异常,就不会执行代码块2
而是直接执行后面的代码

2.语法2:(捕获特定的一种异常类型) 这种比较常用

try :
代码块1
except 异常类型:
代码块2

1)执行过程:会在以上基础上判断异常类型是否是except后面的异常类型,如果是就执行代码块2,如果不是就会直接报错

3.语法3:(捕获多种异常类型)

try:
代码块1
except (异常类型1,异常类型2,异常类型3...):
代码块2

4.语法4:(捕获多种异常类型,并争对不同的异常来执行不同的代码)

try:
代码块1
except 异常类型1:
代码块2
except 异常类型2:
代码块3
.....

try:
    nums = [1, 2, 3]
    print(nums[5])
    print('==========')
except:
    print('出现异常')

print('=========')

特定的异常捕获实例:

nums = [1, 2, 3]
person = {'name': '小明', 'age': 18, 'gender': '男'}
try:
    sco = person['csore']
    num = nums[4]
except KeyError:
    print('关键字错误')

3.finally :

上面的四种语法都可以在最后加finally:

并且任何情况都会执行里面的代码(意思就是就算没有捕获到异常,代码报错了还是!会执行!)

finally的实例:

try:
    nums = [1, 2, 3]
    num = nums[0]
except KeyError:
    print('关键字错误')
finally:
    print('finally报错还是会执行')

4.抛出异常

让代码子啊某种情况下主动崩溃:
raise 异常类型(可以自定义)

raise 实例:

 raise KeyError

你可能感兴趣的:(day13-异常捕获和学生管理系统)