Python 如何自定义异常?详解

大多数情况下,内置的错误和异常已经够用了,但是有时候你还是需要自定义一些异常。

自定义异常,需要你对 继承 有一些了解,对于类的知识,我放在了第七章,因此你可以先前往学习下第七章的的下面两节内容:

等学习完后再回过头来学习本节内容。

自定义异常应该继承 Exception 类,直接继承或者间接继承都可以,自定义的异常或错误类,下面使用 InputError ,表示接受用户输入时发生问题。

class InputError(Exception):
    def __init__(self, msg):
        self.message = msg

    def __str__(self):
        return self.message

异常的名字都以Error结尾,我们在为自定义异常命名的时候也需要遵守这一规范,就跟标准的异常命名一样。

定义完后,再看如下代码,我在 try 里调用 get_input 函数,如果发现用户没有输入内容,就使用 raise 关键字来抛出 InputError

def get_input():
    name = input("请输入你的姓名:")
    if name == "":
        raise InputError("未输入内容")

try:
    get_input()
except InputError as e:
    print(e)

教程来源于Github,感谢iswbm大佬的无私奉献,致敬!

技术教程推荐

MySQL实战45讲 -〔林晓斌〕

TensorFlow快速入门与实战 -〔彭靖田〕

设计模式之美 -〔王争〕

.NET Core开发实战 -〔肖伟宇〕

分布式数据库30讲 -〔王磊〕

Flink核心技术与实战 -〔张利兵〕

Spark核心原理与实战 -〔王磊〕

基于人因的用户体验设计课 -〔刘石〕

自动化测试高手课 -〔柳胜〕