第一章 1.14 异常捕获

一. 异常

程序在运行过程中的报错就叫异常



二. 异常捕获

1. 使用异常捕获的场景

在知道某个位置可能会出现异常,但开发者无法控制时使用

2. 捕获异常

①:捕获任何异常

"""
try:
    代码块一(可能出现异常的代码)
except:
    代码块二(对异常进行处理)
finally:
    代码块三
其他语句
"""
  • 先执行代码块1,如果异常,直接执行代码块2,依次往后执行;若代码块1没有异常,不执行代码块2,往后执行

②:捕获针对异常

"""
try:
    代码块一(可能出现异常的代码)
except 异常类型:
    代码块二(对异常进行处理)
其他语句
"""
  • 先执行代码块1,如果异常,检查该异常是否和except后的异常类型是否一致若一致,执行代码块2,依次往后执行;若不一致,程序崩溃.

③:捕获多个异常一(相同处理)

"""
try:
    代码块一(可能出现异常的代码)
except (异常类型1, 异常类型2...):
    代码块二(对异常进行处理)
其他语句
"""

④:捕获多个异常一(不同处理)

"""
try:
    代码块一(可能出现异常的代码)
except (异常类型1):
    代码块二(对异常进行处理)
except (异常类型2):
    代码块三(对异常进行处理)
except (异常类型3):
    代码块四(对异常进行处理)
    ...  
其他代码
"""


三. 关键字finally

在以上四个捕获异常的方法中都可以在最后加上finally关键字,它的作用是:不管try中的代码出现任何情况,finally后的代码都会执行

try:
    print({'name': 'an', 'age': 29}['gender'])
    print('hello'[19])
    print(max([10, 'asd', True]))
except IndexError:
    print('出现异常')
finally:
    print('写遗书')

四. 抛出异常

raise 异常类型

posted @ 2019-11-21 19:12  anjhon_木  阅读(154)  评论(0编辑  收藏  举报