try...except...finally
这是 python 中最常用的异常处理结构,用于捕获异常并执行相应的处理逻辑。try 块包含要执行的代码,except 块包含捕获异常后的处理逻辑,finally 块包含无论是否发生异常都会执行的代码。例如:
try:
# 执行代码
except Exception as e:
# 捕获异常并处理
finally:
# 无论是否发生异常都会执行的代码
登录后复制
raise
raise 语句用于抛出异常,可以指定要抛出的异常类型和异常信息。例如:
raise ValueError("无效的参数值")
登录后复制
assert
assert 语句用于检查某个条件是否成立,如果不成立则抛出 AssertionError 异常。例如:
assert x > 0, "x must be greater than 0"
登录后复制
自定义异常
你可以创建自己的异常类,继承自 Exception 类。例如:
class MyError(Exception):
pass
raise MyError("我的错误")
登录后复制
使用 logging 模块记录异常
logging 模块可以用来记录异常信息。例如:
import logging
try:
# 执行代码
except Exception as e:
logging.error("发生异常", exc_info=True)
登录后复制
使用上下文管理器处理异常
上下文管理器是一种用来简化异常处理的机制。例如:
with open("file.txt", "r") as f:
# 执行代码
登录后复制
如果在 with 块中发生异常,则会自动关闭文件 f。
使用异常来控制程序流程
异常也可以用来控制程序流程。例如,你可以使用异常来实现循环或分支。例如:
while True:
try:
# 执行代码
except KeyboardInterrupt:
break
登录后复制
使用异常来进行单元测试
异常也可以用来进行单元测试。例如,你可以使用异常来检查函数是否抛出了正确的异常。例如:
import unittest
class MyTestCase(unittest.TestCase):
def test_my_function(self):
with self.assertRaises(ValueError):
my_function(-1)
登录后复制
上述技巧可以帮助你更好地处理异常,提高代码的健壮性。
以上就是Python 异常处理技巧大公开,助你成为编程高手的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!