Python 抛自定义异常

自定义异常,抛自定义异常,捕获异常,打印异常堆栈

import traceback


class UserNameTooLong(Exception):
    def __init__(self, long):
        self.long = long

    def __str__(self):
        return 'user name length is ' + str(self.long) + " too long"


def raise_error():
    s = input("input your name")
    raise UserNameTooLong(len(s))


def call_raise_error():
    raise_error()


def input_value():
    return None


def errorAppear():
    try:
        s = input_value()
        if s is None:
            print("s is none")
        print(len(s))
    except TypeError:
        print("catch exception")
        traceback.print_exc()
        print(traceback.format_exc())


# errorAppear()
call_raise_error()
Please call me JiangYouDang!
原文地址:https://www.cnblogs.com/luckygxf/p/15073299.html