05-python中的异常

python的所有的异常都继承自基类: Exception

处理方式和java类似: 

path = raw_input('input the path')
array = path.split('/')
try :
    module = __import__('model.' + array[0])
    model = getattr(module, array[0])
    func = getattr(model, array[1])
    func()
except (ImportError, AttributeError, NameError), e:
    print(e)

finally:
    print('finally to do')

多个异常的捕捉, 可以使用连续的exept或者使用括号进行捕捉

 

import sys

try:
    f = open('myfile.txt')
    s = f.readline()
    i = int(s.strip())
except OSError as err:
    print("OS error: {0}".format(err))
except ValueError:
    print("Could not convert data to an integer.")
except:
    print("Unexpected error:", sys.exc_info()[0])
    raise
else :
  print ('else method')

python的异常还有一个else子句, 没有任何异常的时候去执行

 

自定义异常: 

和其他语言一样, python也可以进行自定义异常, 并且抛出; 

class MyException(Exception):

    def __init__(self, name):
        self.name = name

    # 重写string方法
    def __str__(self, *args, **kwargs):
        return self.name

在其他地方进行抛出的方法: 

try:
    print('start...')
    raise MyException('raise exception')
except MyException as err:
    print(err)
finally:
    print('finally')

使用raise关键字进行抛出

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值