python调java异常处理_python中的异常处理

本文详细介绍了Python中的异常处理机制,包括try/except语句用于捕获和处理异常,如何使用try-finally确保代码块的清理,raise语句用于主动抛出异常,以及如何自定义新的异常类。通过实例展示了如何处理多种类型的异常以及异常处理的最佳实践。
摘要由CSDN通过智能技术生成

异常处理是我们在编程中经常用到,将Python中的异常处理总结如下:它与其他语言中的用法类似,又有不同。

1.异常处理:

捕捉异常可以用try/except语句

try/except语句块用来检测try语句块中的错误,从而让except语句捕捉异常并处理。

语法:

try:

#有可能出现异常的代码

except:

#捕捉名为name的异常

try语句的工作原理:当开始一个try语句后,Python就在当前程序的上下文中作标记,这样异常出现时就会回到这里,try子句先执行,接下来会发生什么取决与是否发生异常:

1)如果当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。

2)如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印缺省的出错信息)。

3)如果在try子句执行时没有发生异常,python将执行else语句后的语句(如果有else的话),然后控制流通过整个try语句

同一段处理语句可以处理多个异常类型,只要把他们放在一个元组里就行啦

语法:

try:

except(Error1,Error2,Error3):

也可以为多个异常创建对应的多个处理语句

try:

except(name1):

except(name2):

except(name3):

2.try—finally语句

不管异常是否发生,都会执行最后的语句,如:关闭文件,释放锁,把数据库链接返回给连接池。

语法:

try:

finally:

#退出try时总会执行

3.raise抛出异常:

语法:

raise [Exception [, args [, traceback]]]

语句中Exception是异常的类型(例如,NameError)参数是一个异常参数值。该参数是可选的,如果不提供,异常的参数是"None"。最后一个参数是可选的(在实践中很少使用),如果存在,是跟踪异常对象。

def buy_goods( count ):

if count < 0:

raise Exception("购买数量不能小于0!")

# 触发异常后,后面的代码就不会再执行

4.用户自定义异常:

通过创建一个新的异常类,程序可以命名他们自己的异常。异常应该是典型的继承自Exception类,通过直接或间接的方式。

class Networkerror(RuntimeError):

def __init__(self, arg):

self.args = arg

创建一个类,基类为RuntimeError

在定义以上类之后,你可以触发该异常

try:

raise Networkerror("Bad hostname")

except Networkerror,e:

print e.args

变量e是用于创建Networkerror类的实例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值