菜菜学习第八天--异常处理

异常处理:

在代码运行、使用中,遇到一些特殊情况,异常:就是非正常情况

异常并不是错误,而是因为特殊原因,例如,用户使用错误、网络
异常一旦出现程序会立刻结束掉。

异常处理的方案:
在软件运行的时候,不可避免地会出现一些非正常情况,但是这些情况并不影响后面软件的运行;
为了维护软件的稳定性---异常处理

python中异常处理:
很简单,抓取异常

将有可能出现异常的代码块可以放在一个try语句块中,一旦出现异常,我们就针对异常做出处理;

不管处不处理异常,代码不错抛,而是会继续向下运行。

try:
	#可能出现异常的代码块
	#可能出现异常的代码块
except:
	#处理异常

1、try语句块如果没有抓取到异常,不会进入到except语句块
2、如果说在try语句块中代码出现异常,代码就不会正常向下执行,也没有直接结束,而是立刻进入到except语句块中,进行异常处理,处理完成后,代码正常向下走
3、异常处理的作用:
	|-- 解决错误   except里面处理
	|-- 保证代码的健壮性和稳定性、容错性
#此时因为如下代码可能会出现异常,try
try:
	print("异常之前")
	num = int(input("请输入一个整数:"))
	if num >= 18:
		print("你成年了")
	else:
		print("你未成年")
except ValueError as e:
	print("出现异常,处理异常,异常信息为--->",e)		
except FileNotFoundError:
	print("对不起,文件不存在")
	
#这个是多态的体现
except Exception:
	print("出现了其他异常")
	
finally:
	print("不要犯错噢")	

异常处理时,我们也可以针对特定的异常处理:

try:
	#可能出现异常的代码块  #AssertionError
	#可能出现异常的代码块  #ValueError
	#可能出现异常的代码块  #FileNotExists
except 特定的异常:
	#处理异常
except ValueError :
	#处理ValueError
except BaseException:
	#使用多态对剩余异常一次处理

异常类的继承关系:

普通异常,继承Exception类,Exception继承BaseException类

finally关键字

try:
	#可能出现异常的代码块
except xxException as e:
	#处理xxException异常的代码
except BaseException as e:
	#处理剩余异常的代码
finally:
	#一定会执行的代码!!!
	#try中的代码不管出不出现异常,finally必须执行
	#资源的释放、垃圾的回收等等必须执行的代码

#如果在编程中见到如下的语句块
#目的就是利用finally,必须执行
try:
	#代码
finally:
	#把必须执行的代码写在这

自定义异常:

不仅仅有系统提供的异常,也可以由程序员来自己定义异常
步骤如下:
	定义一个类
	让这个类继承Exception或者BaseException类
	重构初始化方法

人为的抛出异常:

使用关键字raise
人为的抛出异常的目的:向上(调用者)传递信息		
class MyException(Exception):
	
	def __init__(self,msg):
		Exception().__init__(msg)
		
def fn():		
	print("1")
	print("2")
#我需要人为的抛出异常
raise MyException("出错了")
	print("3")

try:
	fn()
except MyException as e:
	print(e)
print("----over----")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值