python异常处理的两种技巧

python异常处理的两种技巧
python异常处理的两种技巧

1、传递异常

有时我们会在捕捉到一个异常后重新引发它(传递异常),实现起来很简单,使用不带参数的 raise 语句即可。

def f1():
    print(1/0)
 
def f2():
    try:
        f1()
    except Exception as e:
        print('something worng')
        raise
 
f2()
 
 
# 运行结果
something worng
Traceback (most recent call last):
  File "/Users/ryoma/Desktop/project/learn/learn_python/python_exception.py", line 11, in <module>
    f2()
  File "/Users/ryoma/Desktop/project/learn/learn_python/python_exception.py", line 6, in f2
    f1()
  File "/Users/ryoma/Desktop/project/learn/learn_python/python_exception.py", line 2, in f1
    print(1/0)
ZeroDivisionError: division by zero

2、使用内置的语法规范代替 try/except

Python 本身提供了很多语法范式简化了异常处理,例如:

(1)for 语句利用 Stoplteration 异常来结束循环的

(2)with 语句在打开文件后会在操作结束后(无论是否正常结束)会自动关闭文件句柄

(3)使用 getattr() 函数获取对象中的不确定属性

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注