码迷,mamicode.com
首页 > 编程语言 > 详细

05-python中的异常

时间:2017-07-09 20:56:51      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:...   name   处理   python   继承   func   line   blog   attr   

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关键字进行抛出

 

05-python中的异常

标签:...   name   处理   python   继承   func   line   blog   attr   

原文地址:http://www.cnblogs.com/wenbronk/p/7141728.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!