在Python中,`try-except`语句用于捕获和处理程序运行过程中可能出现的异常。其基本结构如下:
```python
try:
尝试执行的代码块
result = 10 / 0
except ZeroDivisionError:
当出现 ZeroDivisionError 时执行的代码块
print("除数不能为零")
```
基本用法
单一异常处理
将可能引发异常的代码放在`try`块中。
如果`try`块中的代码抛出异常,程序会跳转到相应的`except`块执行。
捕获多种异常
可以在一个`try`块后面附加多个`except`子句,以捕获不同类型的异常。
多个`except`子句应按照从具体到宽泛的顺序排列,以便更精确地处理不同类型的异常。
获取异常信息
使用`as e`语法可以将异常对象捕获到变量`e`中,以便在`except`块中打印详细的错误信息。
示例
处理除零错误
```python
try:
result = 10 / 0
except ZeroDivisionError as e:
print(f"发生异常: {e}")
```
处理用户输入错误
```python
try:
num = int(input("请输入一个数字: "))
result = 100 / num
except ValueError:
print("输入的不是数字哦")
except ZeroDivisionError:
print("0不能做除数啦")
```
处理文件操作错误
```python
try:
with open("non_existent_file.txt", "r") as file:
data = file.read()
except FileNotFoundError:
print("文件未找到")
```
使用`finally`子句
```python
try:
打开文件
with open("file.txt", "r") as file:
data = file.read()
except FileNotFoundError:
print("文件未找到")
finally:
print("文件操作完成")
```
建议
合理使用`try-except`:只在真正需要处理异常的地方使用`try-except`,避免不必要的异常捕获,以免掩盖潜在的问题。
按顺序捕获异常:多个`except`子句应按照从具体到宽泛的顺序排列,以确保异常能够被正确处理。
自定义异常:在需要更细粒度的错误控制时,可以定义自定义异常类并抛出异常。
通过合理使用`try-except`语句,可以提高程序的健壮性和可维护性。