2024-10-02 10:26:16 发布
网友
我是从节点.js我已经习惯了这样的错误处理:
doSmth(function(err, data) { if (err) { log(err); } else { fooSmth(data, function(err, res) { if (err) ... }) } })
在Python中是否可以处理以下错误
使函数始终返回一个包含异常和数据值的元组:
(无,数据)或(例外,无)
虽然代码中没有错误,但通常不会将异常作为参数传递到其他范围,除非异常实例实际用作数据。Python中的异常是轻量级的,它们会冒出来呈现一个完整的回溯,所以您必须让它们存在并发生。在
如果您希望在调用do_smth时发生某种异常,只需编写代码来处理它,如下所示:
do_smth
# Definition def do_smth(arg): return int(arg) # Usage elsewhere try: data = do_smth(['invalid', 'number']) except TypeError: print('Incompatible type!') except ValueError: print('Not a number.') else: print('Conversion successful.')
专业提示:避免只捕捉Exception。总是期待特定类型的错误,也要习惯于编写和引发自己的异常。这很有帮助。Read more关于它。;)
Exception
PS:我也是JavaScript的主要语言;我相信您也会喜欢Python的。:)
python的方法是将try移到do_smth之外:
try
def do_smth(arg): return int(arg) try: data = do_smth("1715") except ValueError: # test for a specific error wherever possible logger.exception() else: print data
或者在失败的情况下返回return None:
return None
请注意,Python通常偏爱"easier to ask for forgiveness than permission"样式的编码。在
虽然代码中没有错误,但通常不会将异常作为参数传递到其他范围,除非异常实例实际用作数据。Python中的异常是轻量级的,它们会冒出来呈现一个完整的回溯,所以您必须让它们存在并发生。在
如果您希望在调用
do_smth
时发生某种异常,只需编写代码来处理它,如下所示:专业提示:避免只捕捉
Exception
。总是期待特定类型的错误,也要习惯于编写和引发自己的异常。这很有帮助。Read more关于它。;)PS:我也是JavaScript的主要语言;我相信您也会喜欢Python的。:)
python的方法是将
try
移到do_smth
之外:或者在失败的情况下返回
^{pr2}$return None
:请注意,Python通常偏爱"easier to ask for forgiveness than permission"样式的编码。在
相关问题 更多 >
编程相关推荐