这是一件事吗?
我想抛出我自己的异常,只是为了让它更容易处理。但它们并不例外,因为它很可能会发生,而不是例外情况。诸如如果用户从浏览器选择了错误的文件类型。是的,我可以处理它,但是如果我抛出一个特别对子方法的异常会容易得多,因为我需要以某种方式告诉父方法子方法失败了,所以做一些不同的事情。我认为抛出异常会更容易。
那么在正常情况下抛出异常是可以的吗?
发布于 2015-06-10 12:24:38
我不得不说,这个问题的答案在某种程度上是基于意见的,但普遍的共识似乎是,滥用异常来进行常规的流程控制是一个坏主意。
它是一种well-documented反模式,被认为是这样的主要原因是:
发布于 2015-06-10 14:30:34
典型的用例是:
H111在中止时,返回"null value“H212H113在重试时返回2。H214G215
真的不需要异常来处理不正确的条目,甚至取消(在2或6之后)。如果您的程序在访问文件系统或类似系统时遇到IOException,则可能会抛出其他一些异常。
调用者应该承担的唯一负担是检查返回的"null value“(null或任何合适的值),以指示用户不想做某事的选择-这是通常应该提供的选项。
https://stackoverflow.com/questions/30747067
复制相似问题