永久存储 异常 (16)

with 语句和上下文管理器 

pickle 模块 解决的是永久存储Python对象的问题  允许将字符串 列表 字典 这些Python对象给保存成文件的形式。

try-except 可以捕获和处理异常  

try:

    检测范围

except[expression[as identifier]]:

    异常处理代码 

try:
	1/0
except:
	print("出错了")

	
出错了
try:
	1/1
except:
	print("出错了")

	
1.0
try:
	1/0
	520+"FISHC"
except (ZeroDivisionError,ValueError,TypeError):
	pass

>>> 

 出现这三个错误中的任何一个  直接执行pass语句  忽略跳过 

try:
	1/0
	520+"FISHC"
except ZeroDivisionError:
	print("除数不能为0")
except ValueError:
	print("值不正确")
except TypeError:
	print("类型不正确")

	
除数不能为0

捕获到异常的代码 520+FISHC 被跳过

try-except-else  当try语句没有检测到任何异常的情况下,就会执行else语句内容 

try:
	1/0
except:
	print("异常")
else:
	print("没有")

	
异常
>>> try:
	1/1
except:
	print("异常")
else:
	print("没有")

	
1.0
没有

 try-except-finally  无论异常是否发生都必须会执行的内容

try:
	1/0
except:
	print("异常")
else:
	print("没有")
finally:
	print("这里都会出现")

	
异常
这里都会出现

 异常的嵌套

try:
	try:
		520+"FISHC"
	except:
		print("内部异常")
	1/0
except:
	print("外部异常")
finally:
	print("收尾工作")

	
内部异常
外部异常
收尾工作

raise 语句 主动引发异常

raise ValueError("值不正确")
Traceback (most recent call last):
  File "<pyshell#54>", line 1, in <module>
    raise ValueError("值不正确")
ValueError: 值不正确
>>> try:
	1/0
except:
	raise ValueError("这样可不行")

Traceback (most recent call last):
  File "<pyshell#59>", line 2, in <module>
    1/0
ZeroDivisionError: division by zero

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<pyshell#59>", line 4, in <module>
    raise ValueError("这样可不行")
ValueError: 这样可不行

assert 语句 只能引发ASSertion的异常  通常用于代码调试

利用异常来实现 goto

 try:
	while True:
		while True:
			for i in range(10):
				if i>3:
					raise
				print(i)
			print("被跳过~")
		print("被跳过")
	print("被跳过")
except:
	print("到这来了")

	
0
1
2
3
到这来了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值