python的异常处理小纪

异常处理
在python中管理发生的错误就会创建‘异常’--特殊对象
异常一般使用try-except代码块处理,可以反馈友好的错误信息

try:
    print 5/0
except ZeroDivisionError:
    print 'error divide'
else:
    print 'correct result'

try-except-else代码块的工作原理大致如下:
Python尝试执行try代码块中的代码;
只有可能引发异常的代码才需要放在try语句中。
有一些仅在try代码块成功执行时才需要运行的代码,应放在else代码块中。
except代码块告诉Python,如果它尝试运行try代码块中的代码时引发了指定的异常,该怎么办。 

FileNotFoundError 文件不存在

失败的时候顺其自然可以使用pass
Python的错误处理结构让你能够细致地 控制与用户分享错误信息的程度,要分享多少信息由你决定

1,finally块
保证异常发生时稳定的执行处理操作

try:
    data = handle.read()
finally:
    handle.close()

向上传递异常的同时可靠关闭句柄
2,else块
使用except与else可以清晰区分不同异常的处理
3,混合使用
需要建立完整的过程,切分不同块的职能
try,except,else,finally
eg,处理json读取

def divide_json(path):
	handle = open(path, 'r+')	# may IOError
	try:
		data = handle.read()	# may UnicodeDecodeError
		op = json.loads(data)	# may raise ValueError
		value = (op['num']/op['value'])	# may ZeroDivisionError
	except ZeroDivisionError as e:
		return UNDEFINED
	else:
		result = json.dumps(value)
		handle.seek(0)
		handle.write(result)	# may IOError
		return value
	finally:
		handle.close()

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值