创建自定义异常-python调用百度人脸识别:来一次颜值评分
14.8创建自定义异常问题在你构建的应用程序中,你想将底层异常包装成自定义的异常。解决方案创建新的异常很简单——定义新的类,让它继承自Exception (或者是任何一个已存在的异常类型)。例如,如果你编写网络相关的程序,你可能会定义一些类似如下的异常: class NetworkError(Exception): pass class HostnameError(NetworkError): pass class TimeoutError(NetworkError): pass class ProtocolError(NetworkError): pass然后用户就可以像通常那样使用这些异常了,例如: try: msg = s.recv() except TimeoutError as e: ... except ProtocolError as e: ...讨论自定义异常类应该总是继承自内置的Exception类,或者是继承自那些本身就是从Exception继承而来的类。尽管所有类同时也继承自BaseException ,但你不应该使用这个基类来定义新的异常。BaseException是为系统退出异常而保留的,比如KeyboardInterrupt或SystemExit以及其他那些会给应用发送信号而退出的异常。因此,捕获这些异常本身没什么意义。这样的话,假如你继承BaseException可能会导致你的自定义异常不会被捕获而直接发送信号退出程序运行。在程序中引入自定义异常可以使得你的代码更具可读性,能清晰显示谁应该阅读这个代码。还有一种设计是将自定义异常通过继承组合起来。在复杂应用程序中,使用基类来分组各种异常类也是很有用的。它可以让用户捕获一个范围很窄的特定异常,比如下面这样的:开课吧- Python3高级教程
2.26MB
文件大小:
评论区