10、异常 错误

本文介绍了Python中的异常处理机制,包括主动抛出异常、try-except语句的使用、assert语句的作用、处理多个异常的方式、finally从句的应用,以及如何使用traceback模块获取和打印详细的异常信息。
摘要由CSDN通过智能技术生成
1、主动抛出异常

当程序在发生某些状况的时候,我们希望程序能主动的抛出异常,一般我们用raise语句,抛出异常之后,若没有try/except的话就会扔给python解释器去处理

基本语法:

raise SomeException,argsv
  • 第一个参数SomeException 是触发异常的名字,必须是一个字符串、类或者实例
  • args 描述异常信息的元组,一般我们用字符串表示异常的原因
for i in range(1,5):
	if i>3:
		raise ValueError,'i>3'
	else:
		print i

# 1
# 2
# 3
# raise ValueError,'i>3'

若我们想自己去处理抛出的异常,我们需要加上try/except

2、简单的 try-except 用法

将可能发生异常的代码放到try语句块中,而处理异常的代码会在except语句块中实现:

try:
	for i in range(1,5):
		if i>3:
			raise ValueError,'i>3'
		else:
			print i
except ValueError,e:
	print 'catch the value error:',e

执行后,输出结果为:

# 1
# 2
# 3
# catch the value error: i>3
3、利用 assert 语句来发现问题

和其他的主流语言c/c++一样,python也有断言,**assert语句是一种有条件在程序代码中触发异常,**主要是为了调试程序服务的,能快速方便的查找程序的异常,或者一些不恰当的输入。

assert 的用法如下:

assert expression, args
  • expression 是一个表达式
  • args 是对条件判断的描述信息

也就是说如果表达式为假,就会触发异常,所以一般我们会把表达式写成我们认为正确的程序应该满足的条件,相当于我们代码块做的一条报警线,告诉你,正确路应该怎么走,一旦不满足正确的行为,就会响起警报 ,触发异常。

x=10
y=20
assert x==y ,'x not equal y'
>>
    assert x==y ,'x not equal y'
AssertionError: x not equal y

上面的代码,我们设的警戒线是x==y,这个是正确的行为,一旦x不等于y, 就会抛出异常,它在执行的过程中其实相当于执行如下代码:

x=10
y=20

if __debug__ and not x==y:
	raise AssertionError('x not equal y')
>>
raise AssertionError('x not equal y')</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值