python基础7_4-异常处理

1、异常捕获

# Author: Mr.Xue
# 2019.10.31

#伪代码
try:
	code
except Error1 as e:
	print(e)
# except (Error2, Error3), e: # 2.x的写法	
except (Error2, Error3) as e: # 3.x的写法
	print(e)
except Exception: # 抓住所有错误,不建议一开始使用
	code
else: # 没有异常执行
	print("all is fine")
finally:
	print("不管有没有异常,都执行")					

2、自定义异常

# Author: Mr.Xue
# 2019.10.30

class XueException(Exception): # 自定义异常类
	def __init__(self, msg):
		self.msg = msg
		
	#def __str__(self):
		#return self.msg
		
try:
	raise XueException("my error") # raise来触发自定义异常	
except XueException as e:
	print(e)

3、常用异常

AttributeError    试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x
IOError           输入/输出异常;基本上是无法打开文件
ImportError       无法引入模块或包;基本上是路径问题或名称错误
IndentationError  语法错误(的子类) ;代码没有正确对齐
IndexError        下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]
	dic = ["wupeiqi", 'alex']
	try:
    	dic[10]
	except IndexError, e:
    	print e
KeyError          试图访问字典里不存在的键
	dic = {'k1':'v1'}
	try:
    	dic['k20']
	except KeyError, e:
    	print e
KeyboardInterrupt Ctrl+C被按下
NameError         使用一个还未被赋予对象的变量
SyntaxError       Python代码非法,代码不能编译(个人认为这是语法错误,写错了)
TypeError         传入对象类型与要求的不符合
UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,导致你以为正在访问它
ValueError        传入一个调用者不期望的值,即使值的类型是正确的
	s1 = 'hello'
	try:
    	int(s1)
	except ValueError, e:
    	print e
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值