gpt4 book ai didi

exception - 异常会破坏封装吗?

转载 作者:行者123 更新时间:2023-12-01 22:43:14 25 4
gpt4 key购买 nike

首先,当您不想担心实现的细节时,会创建一个类或库,但随后您需要了解该类的内部工作原理以正确处理它可能抛出的异常。

这不是破坏了封装和信息隐藏的原则吗?或者我在这方面完全错了?

当然我可以有一个通用的 try/catch block 来拦截所有异常,但这绝对是一种不好的做法。

那么,在不知道可能抛出的每个异常的细节的情况下,我如何才能想出好的异常处理策略呢?

最佳答案

一个设计良好的类或库将记录它抛出的异常作为接口(interface)的一部分,甚至可能会定义自己的异常类层次结构。例如,如果磁盘已满,一个 foo 子类可能会抛出一个“foo 持久性异常”,而另一个子类会在网络中断时抛出一个。作为调用者,您会捕获 foo 持久性异常,因为您担心数据未持久化。不应期望您专门针对磁盘已满、网络故障、磁盘不存在、磁盘写入错误、子空间收发器干扰等编写代码。

对于其中的许多问题,您可能无能为力。

关于exception - 异常会破坏封装吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8066542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com