全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📝 1 篇文章 14 道配套习题

异常处理专题

专题说明

本专题系统讲解Python异常处理的核心知识,包括try-except-else-finally语句结构、内置异常类型体系、自定义异常的创建、raise语句的使用以及with上下文管理器的原理。

学习目标

  1. 掌握try-except-else-finally的完整语法结构
  2. 理解Python内置异常类的继承关系
  3. 学会使用raise主动抛出异常
  4. 掌握自定义异常类的编写方法
  5. 理解with语句和上下文管理器的工作原理

学习内容

  • 异常捕获:try-except基本结构、多except分支、except捕获多种异常
  • 完整结构:else子句(无异常时执行)、finally子句(必定执行)
  • 异常体系:BaseException、Exception及常见内置异常
  • 主动抛出:raise语句、重新抛出、异常链(raise from)
  • 自定义异常:继承Exception创建自定义异常类
  • 上下文管理:with语句、__enter__与__exit__方法

学习建议

  1. 理解异常不是错误,而是程序正常运行中可能遇到的异常情况
  2. 避免使用裸except捕获所有异常,应捕获具体的异常类型
  3. finally子句适合做资源清理工作,如关闭文件、释放连接
  4. 自定义异常应有明确的意义,便于其他开发者理解和使用

📝 发现内容有误?点击此处直接编辑

📝 配套习题(14 题)

1
判断题

try语句块中发生异常后,程序会立即跳转到对应的except块,不再执行try块中剩余的代码。

A

B

2
单选题

以下哪种是捕获特定异常的正确语法?

A

except ValueError as e:

B

except(ValueError):

C

catch ValueError:

D

try ValueError except:

3
单选题

以下代码执行后输出什么?

Python
try:
    result = int("abc")
except ValueError:
    print("值错误")
except TypeError:
    print("类型错误")
except Exception:
    print("其他异常")
A

值错误

B

类型错误

C

其他异常

D

程序崩溃

4
判断题

无论try块是否发生异常,finally块中的代码都会执行。

A

B

5
单选题

finally块最主要的使用场景是什么?

A

打印日志信息

B

返回函数结果

C

清理资源(如关闭文件、释放锁)

D

重新抛出异常

6
单选题

以下代码返回什么值?

Python
def test():
    try:
        return 1
    except:
        return 2
    finally:
        return 3
A

1

B

2

C

3

D

报错

7
判断题

访问列表中不存在的索引会引发KeyError异常。

A

B

8
单选题

执行int("abc")会引发什么异常?

A

TypeError

B

ValueError

C

KeyError

D

AttributeError

9
单选题

以下代码会引发什么异常?

Python
d = {'a': 1, 'b': 2}
result = d['c'] + d['a']
A

KeyError

B

TypeError

C

ValueError

D

IndexError

10
判断题

使用except ValueError, TypeError:可以同时捕获ValueError和TypeError两种异常。

A

B

11
单选题

以下哪种写法可以正确捕获ValueError和TypeError两种异常?

A

except ValueError, TypeError:

B

except (ValueError, TypeError):

C

except ValueError or TypeError:

D

except ValueError + TypeError:

12
单选题

以下代码执行后输出什么?

Python
try:
    raise ValueError("测试异常")
except ValueError:
    print("A")
except Exception:
    print("B")
except:
    print("C")
A

A

B

B

C

C

D

ABC

13
多选题

关于异常处理,以下说法正确的是?

A

一个try块可以对应多个except块

B

except块应按从具体到通用的顺序排列

C

使用except:可以捕获所有异常

D

多异常捕获必须使用元组形式

E

finally块必须紧跟except块

F

可以使用else块处理无异常的情况

14
填空题

在Python3中,要同时捕获ValueError和TypeError两种异常,正确的语法是使用______形式:except (__________, _________)。要获取异常对象,使用as关键字:except (ValueError, TypeError) ______ e。多个except块应该按照____________的顺序排列,确保特定异常能被正确捕获。

← 上一个专题 并发编程基础专题
下一个专题 → 性能优化专题

📝 发现内容有误?点击此处直接编辑

想查看更多习题和详细解析?
小程序提供完整的题库和详细解析

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库