最近看到 Python-3.14 有一处对异常处理写法的改进,不由地想起刚入行时代码都是规规矩矩的,根本没有现在这么简洁【奇技淫巧】。这篇文章打算回忆一下当年过的苦日子。
第一阶段这个阶段完全没有什么技巧
#!/usr/bin/env python3
def errro_handler(): print("这是一个摆烂的错误处理函数")
def foo(): try: # 这里是一些可能会引发异常的代码 raise ValueError("") except ValueError: errro_handler() except IndexError: errro_handler()
def main(): foo()
if __name__ == "__main__": main()
第二阶段这个阶段在写法上可以简洁一点,如果多个异常他们的处理方式一致,可以合在一起;写法上只需要用一个括号括起来就行。
#!/usr/bin/env python3
def errro_handler(): print("这是一个摆烂的错误处理函数")
def foo(): try: # 这里是一些可能会引发异常的代码 raise ValueError("") except (ValueError, IndexError): errro_handler()
def main(): foo()
if __name__ == "__main__": main()
第三阶段这个阶段可以把上一个阶段的括号也去掉了, 能简洁一点但是不多。
#!/usr/bin/env python3
def errro_handler(): print("这是一个摆烂的错误处理函数")
def foo(): try: # 这里是一些可能会引发异常的代码 raise ValueError("") except ValueError, IndexError: errro_handler()
def main(): foo()
if __name__ == "__main__": main()
运行效果, 由于这是 3.14 才有的功能,所有在其它版本上运行会报错。
/usr/local/python-3.14.0.a/bin/python3 /tmp/main.py
这是一个摆烂的错误处理函数
python-3.13.0 main.py File "/tmp/main.py", line 12 except ValueError, IndexError: ^^^^^^^^^^^^^^^^^^^^^^SyntaxError: multiple exception types must be parenthesized
更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。
想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!