面试题答案
一键面试try - except语句基本结构
try:
# 可能会引发异常的代码块
pass
except SomeException as e:
# 捕获到SomeException异常时执行的代码块
pass
捕获不同类型异常示例
try:
result = 10 / 0 # 可能引发ZeroDivisionError
file = open('nonexistent_file.txt', 'r') # 可能引发FileNotFoundError
except ZeroDivisionError as e:
print(f"捕获到除零错误: {e}")
except FileNotFoundError as e:
print(f"捕获到文件未找到错误: {e}")
else子句作用
else
子句在try
块没有引发任何异常时执行。
try:
num1 = 10
num2 = 2
result = num1 / num2
except ZeroDivisionError as e:
print(f"捕获到除零错误: {e}")
else:
print(f"计算结果: {result}")
在上述代码中,如果try
块中的除法运算成功(未引发ZeroDivisionError
),则会执行else
块。
finally子句作用
finally
子句无论try
块是否引发异常都会执行。常用于资源清理,如关闭文件、数据库连接等。
file = None
try:
file = open('test.txt', 'r')
data = file.read()
except FileNotFoundError as e:
print(f"捕获到文件未找到错误: {e}")
finally:
if file:
file.close()
在上述代码中,无论try
块中打开文件和读取文件是否成功,finally
块都会确保文件被关闭。