Python3 (入门4) 异常

Python3 (入门4) 异常


本文由 Luzhuo 编写,转发请保留该信息.
原文: http://blog.csdn.net/Rozol/article/details/69313164


以下代码以Python3.6.1为例
Less is more!

#coding=utf-8
# exception.py 异常

import sys

# === 捕获异常 (可灵活组合) ===
def excep():
    # - try except -
    try:
        print(ex)
    except: # 捕获所有异常
        print("捕获异常!")

    try:
        print(ex)
    except: # 通过函数获取异常信息
        types, value, back = sys.exc_info() # 捕获异常
        sys.excepthook(types, value, back)  # 打印异常

    try:
        print(ex)
    except NameError: # 捕获指定异常
        print("捕获名字未定义异常!")
    except IOError:
        print("捕获IO异常!")
    except:
        print("捕获所有异常!")

    try:
        print(ex)
    except (NameError, IOError) as e: # 同时捕获多个异常, 并告知异常原因
        print("捕获多个异常!")
        print(e)
    except:
        print("捕获所有异常!")


    # - try except else -
    try:
        pass
    except:
        print("捕获异常!")
    else: # 没有发生异常是执行该代码块
        print("运行正常.")

    # - try except else finally -
    try:
        pass
    except:
        print("捕获异常!")
    else:
        print("运行正常.")
    finally: # 不管是否发生异常都执行
        print("不管是否发生异常都执行")




# === 自定义异常 ===
# - 编写自定义异常 -
class MyError(Exception): # 继承 Exception

    # 重写并super构造
    def __init__(self, mes = "抛出一个异常."):
        Exception.__init__(self)
        self.message = mes

    def __str__(self):
        return self.message


# - 使用自定义异常 - 
def myerr():
    try:
        raise MyError("抛异常!") # 抛出异常
    except MyError as e: # 接住异常
        print(e)




# === 断言语句 ===
def assertdemo():
    # 断言一般用于测试, 如果测试结果为Flase,将抛出AssertionError异常
    assert 3 > 4

    assert 3 > 4, "抛AssertionError异常"

    assert type("string") is str





# ======= 函数调用 ======
if __name__ == "__main__":
    excep()
    myerr()
    assertdemo()
# ======= 函数调用 ======
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值