一线异常处理

一线异常处理,第1张

一线异常处理

在python中无法执行单行异常处理语句。一个人可以编写一个函数来做到这一点

def safe_execute(default, exception, function, *args):    try:        return function(*args)    except exception:        return default

用法示例:

from json import loadssafe_execute("Oh no, explosions occurred!", TypeError, loads, None)# Returns "Oh no, explosions occurred!"safe_execute("Huh?", TypeError, int, "10")#Returns 10

支持多个参数

from operator import divsafe_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 sleepsafe_execute(    "Panic!",    Exception,    sleep, 8)# Ctrl-c will raise a KeyboardInterruptfrom sys import exitsafe_execute("Failed to exit!", Exception, exit)# Exits the Python interpreter

如果这种行为是不希望的,请使用

baseException

from time import sleepsafe_execute("interrupted",  baseException,  sleep, 8)#Pressing Ctrl-c will return "interrupted"from sys import exitsafe_execute("Naughty little program!",  baseException,  exit)#Returns "Naughty little program!"


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5601796.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-15
下一篇2022-12-15

发表评论

登录后才能评论

评论列表(0条)

    保存