首页 / PYTHON / python – 单行异常处理
python – 单行异常处理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 单行异常处理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1589字,纯文字阅读大概需要3分钟。
内容图文
![python – 单行异常处理](/upload/InfoBanner/zyjiaocheng/706/77aa80441a0c4f158a466339cf8cd68f.jpg)
在Python中,可以使用单行来以简单,直观的方式设置具有特殊条件(例如默认值或条件)的值.
result = 0 or "Does not exist." # "Does not exist."
result = "Found user!" if user in user_list else "User not found."
是否有可能编写一个捕获异常的类似语句?
from json import loads
result = loads('{"value": true}') or "Oh no, explosions occurred!"
# {'value': True}
result = loads(None) or "Oh no, explosions occurred!"
# "Oh no, explosions occurred!" is desired, but a TypeError is raised.
解决方法:
在python中不可能执行单行异常处理语句.人们可以写一个函数来做到这一点.
def safe_execute(default, exception, function, *args):
try:
return function(*args)
except exception:
return default
用法示例:
from json import loads
safe_execute("Oh no, explosions occurred!", TypeError, loads, None)
# Returns "Oh no, explosions occurred!"
safe_execute("Huh?", TypeError, int, "10")
#Returns 10
支持多个参数
from operator import div
safe_execute(
"Divsion by zero is invalid.",
ZeroDivisionError,
div, 1, 0
)
# Returns "Divsion by zero is invalid."
safe_execute(
"Divsion by zero is invalid.",
ZeroDivisionError,
div, 1, 1
)
# Returns 1.
错误捕获过程可能仍会中断:
from time import sleep
safe_execute(
"Panic!",
Exception,
sleep, 8
)
# Ctrl-c will raise a KeyboardInterrupt
from sys import exit
safe_execute("Failed to exit!", Exception, exit)
# Exits the Python interpreter
如果不希望出现此行为,请使用BaseException:
from time import sleep
safe_execute("interrupted",
BaseException,
sleep, 8)
#Pressing Ctrl-c will return "interrupted"
from sys import exit
safe_execute("Naughty little program!",
BaseException,
exit)
#Returns "Naughty little program!"
内容总结
以上是互联网集市为您收集整理的python – 单行异常处理全部内容,希望文章能够帮你解决python – 单行异常处理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。