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()

 

posted on 2021-07-29 00:31  luckygxf  阅读(65)  评论(0编辑  收藏  举报

导航