try-except #
使用try-except捕获和处理异常。
一、基本语法 #
python
try:
result = 10 / 0
except ZeroDivisionError:
print("除零错误")
二、捕获异常信息 #
python
try:
result = int("abc")
except ValueError as e:
print(f"错误:{e}")
# 获取异常类型
try:
result = 1/0
except Exception as e:
print(type(e).__name__) # "ZeroDivisionError"
print(e) # "division by zero"
三、多个except块 #
python
try:
value = int(input("输入数字:"))
result = 10 / value
except ValueError:
print("请输入有效数字")
except ZeroDivisionError:
print("不能输入0")
except Exception as e:
print(f"其他错误:{e}")
四、捕获多种异常 #
python
try:
# 可能引发多种异常的代码
result = some_operation()
except (ValueError, TypeError) as e:
print(f"值或类型错误:{e}")
五、try-except-else #
python
try:
result = 10 / 2
except ZeroDivisionError:
print("除零错误")
else:
print(f"结果:{result}") # 无异常时执行
六、try-except-finally #
python
try:
f = open('file.txt')
content = f.read()
except FileNotFoundError:
print("文件不存在")
finally:
print("清理工作") # 总是执行
# 文件操作最佳实践
try:
with open('file.txt') as f:
content = f.read()
except FileNotFoundError:
print("文件不存在")
七、嵌套try #
python
try:
try:
result = 10 / 0
except ZeroDivisionError:
raise ValueError("转换后的错误")
except ValueError as e:
print(e)
八、实际应用 #
python
def safe_divide(a, b):
try:
return a / b
except ZeroDivisionError:
return None
except TypeError:
raise TypeError("参数必须是数字")
def get_value(dictionary, key):
try:
return dictionary[key]
except KeyError:
return None
def convert_to_int(value):
try:
return int(value)
except (ValueError, TypeError):
return 0
九、总结 #
| 语句 | 说明 |
|---|---|
try |
尝试执行的代码 |
except |
捕获异常 |
else |
无异常时执行 |
finally |
总是执行 |
最后更新:2026-03-16