简介
用户定义的异常是通过类来定义的。
class NetworkError(Exception):
pass
异常总是继承自 Exception
。
通常它们是空类。在类体中使用 pass
。
你也可以创建异常层次结构。
class AuthenticationError(NetworkError):
pass
class ProtocolError(NetworkError):
pass
This tutorial is from open-source community. Access the source code
💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版
用户定义的异常是通过类来定义的。
class NetworkError(Exception):
pass
异常总是继承自 Exception
。
通常它们是空类。在类体中使用 pass
。
你也可以创建异常层次结构。
class AuthenticationError(NetworkError):
pass
class ProtocolError(NetworkError):
pass
对于库来说,定义自己的异常通常是个好习惯。
这样做便于区分因常见编程错误而引发的Python异常,与库为了表明特定使用问题而故意引发的异常。
修改上一个练习中的 create_formatter()
函数,使其在用户提供错误的格式名称时引发自定义的 FormatError
异常。
例如:
>>> from tableformat import create_formatter
>>> formatter = create_formatter('xls')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "tableformat.py", line 80, in create_formatter
raise FormatError(f"Unknown table format {name}")
tableformat.FormatError: Unknown table format xls
>>>
恭喜你!你已经完成了“定义异常”实验。你可以在LabEx中练习更多实验来提升你的技能。