从0开始学Python——异常处理

异常处理

程序在运行时出错会被中断执行,终端打印出错误信息,这样的问题大家在编写代码的过程中经常遇到。引发程序出错的事件源称为异常,处理程序异常并使程序继续执行的方法叫做异常处理。

1. 异常

即使语句或表达式在语法上是正确的,但是执行它时却出现错误,我们把这种在执行过程中检测到的错误称为异常。

示例:

c = 10/0 
print(c)

运行结果:

syntax finish. 
>>> 
>>> Ready to download this file,please wait! 
download ok exec(open('test.py').read(),globals()) 
Traceback (most recent call last):  
File "<stdin>", line 1, in <module>  
File "<string>", line 1, in <module> 
ZeroDivisionError: division by zero

上面的例子语法没有错误,但是引发ZeroDivisionError异常而产生中断,使后面的程序不能正确执行。

2. 处理异常

try…except

在Python中用try……except语句来处理异常,将可能引发异常的语句放到try中执行,当异常发生时,跳过try中剩余的语句,直接跳转至except中的语句来处理异常。

示例:

>>> try: 
...  a = 10/0 
...  print(a) 
... except: 
...  print("error") 
... error

except语句也可以专门处理指定的异常,即在except语句后跟异常名称,如果不指定异常名称则表示处理所有异常。

示例:

def divide(x, y):  
	try:   
		i = x/y  
	except ZeroDivisionError:   
		print("division by zero!")  
	else:   
		print("result is", i)  

divide(5, 0) 
divide(5, 2)

运行结果:

division by zero! 
2.5

在上面的示例中,try……except语句有一个可选的else子句。如果try子句不引发异常,则必须执行该代码。

try……finally

无论是否发生异常都会执行finally中的语句块,它可以和try……except……else一起使用。

示例:

def divide(x, y):  
	try:   
		i = x/y  
	except ZeroDivisionError:   
		print("division by zero!")  
	else:   
		print("result is", i)  
	finally:   
		print("executing finally clause") 
		
divide(5,0) 
print() #打印一个空行 

divide(5, 2)

运行结果:

division by zero! 
executing finally clause 

result is 2.5 
executing finally clause
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vicky__3021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值