python 引发异常_在python中引发异常的正确方法?

两者都是正确的;后一种形式让您将参数附加到异常:if len(sys.argv) == 1:

raise EmptyArgs('Specify at least 1 argument')

也可以在raise语句中将参数作为第二个值作为元组传入:if len(sys.argv) == 1:

raise EmptyArgs, ('Specify at least 1 argument',)

但是,单个非元组值也将起作用,并被视为单个参数:if len(sys.argv) == 1:

raise EmptyArgs, 'Specify at least 1 argument'

以及raise的第三个值,让我们指定一个备用回溯,然后使用该回溯,而不是为代码中的当前位置生成的回溯:if len(sys.argv) == 1:

raise EmptyArgs, ('Specify at least 1 argument',), traceback_object

请注意,当您对异常使用参数时,The Python styleguide PEP 8希望您提供异常实例,而不是类:When raising an exception, use raise ValueError('message') instead of the older form raise ValueError, 'message'.

The paren-using form is preferred because when the exception arguments are long or include string formatting, you don't need to use line continuation characters thanks to the containing parentheses. The older form will be removed in Python 3.

Python 3将不再支持这种形式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值