目录

  • 前言
    • ●  Python解释器安装
    • ●  PyCharm开发环境
  • Python程序设计实验
    • ●  实验1 IDLE与代码编写规范
    • ●  实验2 输入输出与数据类型
    • ●  实验3 字符串处理
    • ●  实验4 数据运算
    • ●  实验5 列表与元组应用
    • ●  实验6 字典与集合应用
    • ●  实验7 if语句与match语句
    • ●  实验8 使用循环语句
    • ●  实验9 异常处理
    • ●  实验10 函数应用
    • ●  实验11 类的应用
    • ●  实验12 模块应用
    • ●  实验13  应用re模块
    • ●  实验14 文件处理
    • ●  实验15 用户界面设计
    • ●  实验18 SQLite数据库应用
    • ●  理论考试模拟试题A
    • ●  理论考试模拟试题B
    • ●  理论考试模拟试题C
    • ●  理论考试模拟试题D
  • 学习参考
    • ●  01 Python及其IDLE环境
    • ●  02 Python代码规范
    • ●  03 常量和变量
    • ●  04 输入输出
    • ●  05 运算符
    • ●  06 数值类型
    • ●  07 字符串
    • ●  08 列表
    • ●  09 元组
    • ●  10 字典
    • ●  11 集合
    • ●  12 条件语句
    • ●  13 循环语句
    • ●  14 异常处理
    • ●  15 自定义函数
    • ●  16 内置函数
    • ●  17 模块导入与定义
    • ●  18 math模块
    • ●  19 os模块
    • ●  20 time模块
    • ●  21 random模块
    • ●  22 文本文件
    • ●  23 二进制文件
    • ●  24 类的创建和使用
    • ●  25 类的继承与多态
 14 异常处理

一、使用try...except语句捕获运行时异常

1、格式:

   try:

       语句块A

   except:

       语句块B

2、执行流程

执行可能触发运行时错误(如计算时分母为零、变量未定义、数据类型错误)的语句块A,一旦有语句触发异常,则跳转到语句块B执行。

3、使用说明

(1)语句块可以是一条语句,也可以是多条语句。语句块A可与try同行,语句块B可与except同行。此时多条语句必须使用";"字符分隔。

(2)except子句之后可以指定异常的类型。未指定时捕获所有异常。如:

    try:

        x=a/3

    except NameError as e:

        print(e)    #其中NameError为异常的类型,e存储捕获到的异常信息

(3)try可以匹配多个except子句(每个子句需指定捕获特定的异常)。

(4)可以使用else子句指定未触发异常时需运行的语句。如:

    try:

        x=int(input())

    except:

        print("输入的不是一个整数!")

    else:

        print(f"{x:03d}"

(5)可以使用finally子句指定无论是否触发异常均需运行的语句。如:

try:

        x=int(input())

except:

        x=6

finally:

        print(x)

特别提示:

(1)try块中包含break、continue或者return语句时,finally中的语句也会被执行。

(2)try与finally搭配时,可以不使用except部分,但触发异常时会导致程序运行终止。


二、使用assert语句触发AssertionError异常

1、格式:

    assert A[, B]

2、作用:

其中A为必须满足的条件,否则会触发AssertionError异常。B为触发异常后的提示信息。可缺省。

示例:

   try:

       x=int(input())

       assert 0<=x<=10,"只能输入[0,10]上的整数"

   except Exception as e:

        print(e)

   else:

        print(x%10,x//10%10)


三、使用raise语句触发异常

1、格式:

    raise ex

2、作用:

抛出异常。ex指定异常类型。上例中assert语句也可写为:if x<0 or x>10:raise ValueError("输入的不是[0,10]上的整数")