Python 自定义异常类,主动捕获异常,主动抛出异常

#coding:utf-8
__author__ = "libingxian"

# 通过继承Exception或者BaseException类实现自定义异常类
class selfException(BaseException):
    def __init__(self,mesg="raise a selfException"):
        print mesg

#主动抛出异常,注意,当抛出异常后,如果不捕获处理,程序就会终止,不再往下执行
def raise_exception():
    raise selfException("sorry,i am a selfexception")

# raise_exception()

# 主动捕获异常,当捕获成功,并且处理异常的过程不再抛出异常,程序则会正常执行
def catch_exception():
    try:
        res = 1/0
    except ZeroDivisionError,e: # 必须要捕抓到对应的异常,才会进行处理
        try:
            raise_exception() # 这里会抛出一个异常,下面的语句不会执行
            print "i will not run"
        except selfException,e:
            print e
    finally:
        print "i will run alawys"
    print "hello"

catch_exception()

# 使用traceback模块可以获取更加详细的异常信息,后续再补充

你可能感兴趣的:(Python)