### 1. 使用try-except块捕获特定异常
在Python中,使用try-except块可以捕获和处理特定异常,避免程序因未处理的异常而崩溃。例如:
```python
try:
result = 10 / 0
except ZeroDivisionError:
print(除数不能为零)
```
通过指定异常类型,可以精确处理问题,同时避免干扰其他异常。
### 2. 使用else子句处理无异常情况
try-except结构可以搭配else子句,用于处理没有异常发生时的逻辑:
```python
try:
value = int(123)
except ValueError:
print(转换失败)
else:
print(f转换成功,值为:{value})
```
这种方式使代码逻辑更清晰,异常处理与正常逻辑分离。
### 3. 使用finally子句确保资源释放
无论是否发生异常,finally子句中的代码都会执行,适用于资源清理操作:
```python
file = None
try:
file = open(data.txt, r)
content = file.read()
except FileNotFoundError:
print(文件未找到)
finally:
if file:
file.close()
```
这样可以确保文件、网络连接等资源被正确释放。
### 4. 使用自定义异常提高代码可读性
通过定义自定义异常,可以更清晰地表达特定的错误情况:
```python
class NegativeNumberError(Exception):
pass
def process_positive_number(num):
if num < 0:
raise NegativeNumberError(数值不能为负)
return num 2
try:
process_positive_number(-5)
except NegativeNumberError as e:
print(e)
```
自定义异常使错误信息更具描述性,便于调试和维护。
### 5. 使用上下文管理器处理资源异常
通过with语句和上下文管理器,可以更简洁地处理资源管理中的异常:
```python
try:
with open(data.txt, r) as file:
content = file.read()
except FileNotFoundError:
print(文件未找到)
```
上下文管理器自动处理资源的获取和释放,即使在发生异常时也能确保资源被正确清理。
1778

被折叠的 条评论
为什么被折叠?



