Python中的异常——概述和基本语法
摘要:Python中的异常是指在程序运行时发生的错误情况,包括但不限于除数为0、访问未定义变量、数据类型错误等。异常处理机制是Python提供的一种解决这些错误的方法,我们可以使用try/except语句来捕获异常并进行相应的处理。本部分将对Python中的异常及其基本语法进行详细介绍。
1.简介
1.1什么是异常
当检测到一个错误时,解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的"异常"。
1.2异常演示
例如:以r
方式打开一个不存在的文件。
f = open('xiaogao.txt', 'r')
执行结果:
1.3python异常
Python中的异常是指在程序运行时出现的错误,这些错误可能导致程序崩溃或产生不可预期的结果。Python提供了一种机制来处理这些错误,即异常处理机制。
1.4常见的Python异常类型
Python中有很多不同类型的异常,每种异常都代表着不同的错误情况。以下是几个常见的Python异常:
- ZeroDivisionError:除数为0。
- NameError:尝试访问未定义的变量。
- TypeError:数据类型错误。
- IndexError:列表、元组等序列中的下标超出范围。
- KeyError:尝试访问字典中不存在的键。
- IOError:输入/输出错误。
- ValueError:传递给函数的参数类型正确但值无效。
- ImportError:无法导入模块或包。
2.异常的捕获方法
2.1捕获常规异常
基本语法:
try:
可能发生错误的代码
except:
如果出现异常执行的代码
案例:
需求:尝试以r
模式打开文件,如果文件不存在,则以w
方式打开。
try:
f = open('linux.txt', 'r')
except:
f = open('linux.txt', 'w')
2.2捕获指定异常
基本语法:
try:
print(name)
except NameError:
print('name变量名称未定义错误')
注意:
① 如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常。
② 一般try下方只放一行尝试执行的代码。
2.3捕获多个异常
当捕获多个异常时,可以把要捕获的异常类型的名字,放到except 后,并使用元组的方式进行书写。
try:
print(1/0)
except (NameError, ZeroDivisionError):
print('ZeroDivision错误...')
执行结果:
2.4捕获异常并输出描述信息
基本语法:
try:
print(num)
except (NameError, ZeroDivisionError) as e:
print(e)
执行结果:
2.5捕获所有异常
基本语法:
try:
print(name)
except Exception as e:
print(e)
执行结果:
2.6异常else
else表示的是如果没有异常要执行的代码。
基本语法:
try:
print(1)
except Exception as e:
print(e)
else:
print('我是没有异常的时候执行的else代码')
执行结果:
2.7异常的finally
finally表示的是无论是否异常都要执行的代码,例如关闭文件。
try:
f = open('test.txt', 'r')
except Exception as e:
f = open('test.txt', 'w')
else:
print('没有异常')
finally:
f.close()
在编写Python程序时,需要考虑到可能出现的各种异常情况,并编写相应的异常处理代码。