当前位置:首页>python>小白学python第78天之Python异常(上)

小白学python第78天之Python异常(上)

  • 2026-08-27 09:41:47
小白学python第78天之Python异常(上)

2.23

Python异常(上)

 ?   

学前疑问

当你的Python程序因为一个意想不到的错误(比如要打开的文件不存在)而突然“崩溃”并弹出一堆令人困惑的红色错误信息时,你是否想过,有没有一种方法能让程序“优雅地摔倒”而不是“轰然倒地”,并能清晰地告诉用户或开发者到底发生了什么?

1

Python异常(上)

(1)什么是异常

当检测到一个错误时,解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的"异常"。

(2)异常演示

# 运算符# print(10/0)# 文件异常f = open('python.txt', 'r')content = f.readlines()print(content)

(3)异常捕获

基本语法:

try:    可能发生错误的代码except(捕获):    如果出现异常执行的代码
try...except主要用于捕获代码运行时异常

案例:

try:    f = open('python.txt', 'r')    content = f.readline()    print(content, end='')except:    f = open('python.txt', 'w', encoding='utf-8')    f.write('发生异常,执行except语句中的代码')f.close()

(4)捕获指定异常

在以上案例代码中,except相当于捕获了所有异常,无论遇到什么错误都会自动执行except中封装的代码。但是有些情况下,我们向针对性的捕获异常,并执行相应的代码。

基本语法:

try:    可能遇到异常的代码except 异常类型:    捕获到对应的错误以后,执行的代码

① 如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常。

② 一般try下方只放一行尝试执行的代码。

案例:捕获FileNotFoundError异常

try:    print(name)    # print(10/0)except (NameError, ZeroDivisionError) as e:    print(e)

(5)同时捕获多个异常

try:    print(name)    # print(10/0)except (NameError, ZeroDivisionError) as e:    print(e)

(6)捕获未知异常

无论我们在except后面定义多少个异常类型,实际应用中,也可能会出现无法捕获的未知异常。这个时候,我们考虑使用Exception异常类型捕获可能遇到的所有未知异常:

try:    可能遇到的错误代码except Exception as e:    print(e)

案例:打印一个未定义变量,使用Exception异常类进行捕获

try:    print(name)except Exception as e:    print(e)

今日学习完毕,课后作业: 

设置一个程序,程序会提示用户输入一个数字,然后尝试将这个输入转换成整数。如果用户输入的内容无法转换为整数(例如输入了字母"abc"),程序会捕获这个错误,并打印一条友好的提示信息"输入错误,请输入一个有效的数字"。

最新文章

随机文章