3
例外-“发生了什么”与“做什么”
我们使用异常来使代码的使用者以有用的方式处理意外行为。通常,异常是围绕“发生的情况”构建的,例如FileNotFound(我们无法找到您指定的文件)或ZeroDivisionError(我们无法执行1/0操作)。 如果有可能指定消费者的预期行为怎么办? 例如,假设我们有fetch资源,该资源执行HTTP请求并返回检索到的数据。而不是像ServiceTemporaryUnavailable或之类的错误,RateLimitExceeded我们只会提出一个RetryableError建议,即消费者应该重试该请求,而不关心特定的失败。因此,我们基本上是在建议呼叫者采取一项行动-“该做什么”。 我们不经常这样做,因为我们不了解消费者的所有用例。但是,想象一下这是一个特定的组成部分,我们确实知道呼叫者的最佳操作过程-那么我们应该使用“做什么”方法吗?
19
exceptions