6.3 【基础】如何自定义异常?¶
大多数情况下,内置的错误和异常已经够用了,但是有时候你还是需要自定义一些异常。
自定义异常,需要你对 类
与 继承
有一些了解,对于类的知识,我放在了第七章,因此你可以先前往学习下第七章的的下面两节内容:
等学习完后再回过头来学习本节内容。
自定义异常应该继承 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)