Python中的异常处理是一种处理程序在出现错误时的控制结构,它允许程序员预测异常产生的可能性,并且根据情况处理这些异常,从而保证程序在遇到错误时仍然能够正常运行,而不是立即崩溃终止。
异常的基本使用方法
- 我们可以使用try...except语句来捕获异常,并进行处理:
try:
# 尝试执行的代码块
except:
# 如果代码块执行出现异常,执行此代码块
- 上述代码中,try语句块中的代码尝试执行,如果执行中出现异常,则跳转到except语句块中执行,except可以捕获多个不同类别的异常:
try:
# 尝试执行的代码块
except ValueError:
# 如果代码块执行出现值错误,执行此代码块
except ZeroDivisionError:
# 如果代码块执行出现除零错误,执行此代码块
except:
# 如果代码块执行出现其他错误,执行此代码块
- 上述代码中,如果try语句块中的代码出现值错误,则跳转到第一个except语句块,并执行其中的代码,如果出现其他异常,则跳转到最后一个except语句块处理。
异常的应用示例
示例1:输入数字并分别处理输入错误、除零错误
下面的示例中,我们要求用户输入两个数字,程序会计算它们的商并输出。在输入过程中,可能会出现值错误(输入非数字)和除零错误(输入的第二个数字为零),我们将分别捕获这两种异常并进行处理:
while True:
try:
num1 = int(input('请输入第一个数字:'))
num2 = int(input('请输入第二个数字:'))
result = num1 / num2
print(f'{num1} / {num2} = {result}')
break
except ValueError:
print('输入格式错误,请重新输入数字!')
except ZeroDivisionError:
print('输入的第二个数字不能为零,请重新输入!')
在上述代码中,我们使用了while True语句块无限循环等待用户输入,当输入成功后,尝试计算并输出商,如果输入过程中出现值错误,则执行第一个except语句块,输出错误提示信息,然后重新等待并尝试输入;如果输入过程中出现除零错误,则执行第二个except语句块,提示用户重新输入。
示例2:打开文件并捕获文件读取错误
下面的示例中,我们要求用户输入文件路径和文件名,如果输入正确,则打开文件并输出其中的内容;如果输入错误,抛出文件读取错误,并输出错误信息和默认文本:
def read_file():
try:
file_path = input('请输入文件路径:')
file_name = input('请输入文件名:')
with open(f'{file_path}/{file_name}', 'r') as f:
content = f.read()
print(content)
except FileNotFoundError:
print(f'读取文件{file_name}失败,文件不存在!')
print('输出默认文本:')
print('这是默认文本,没有找到文件的时候输出这个。')
except:
print('文件读取发生未知错误!')
read_file()
在上述代码中,我们使用了with语句打开文件,当文件读取成功后,读取其中的内容并输出;如果文件不存在,则抛出FileNotFoundError异常,并执行第一个except语句块;如果出现未知错误,则执行第二个except语句块输出相应信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python中异常处理用法 - Python技术站