无异常的例外

时间:2015-06-10 04:23:40

标签: java error-handling

这是一件事吗?

我想抛出自己的异常只是为了让它更容易处理。 虽然它们很可能会发生,但不是特殊情况,它们是无与伦比的。例如,如果用户从浏览器中选择了错误的文件类型。是的,我可以处理它,但如果我特别为子方法抛出异常会更容易,因为我需要以某种方式告诉父方法sub方法失败,所以做一些不同的事情。我认为抛出异常会更容易。

那么在正常情况下抛出异常是否可以?

2 个答案:

答案 0 :(得分:3)

我不得不说这个问题的答案在某种程度上是基于意见的,但普遍的共识似乎是滥用常规流量控制的例外是一个坏主意。

这是一种well-documented反模式,其主要原因是:

答案 1 :(得分:1)

典型的用例是:

  1. 向用户提供一些数据
  2. 接受选择(或取消)
  3. 检查选择(例如,正确的文件类型)
  4. 如果正确,请返回选择
  5. 如果不正确,请提供错误消息(仍在此对话框的上下文中),并选择“重试”和“中止”
  6. 在中止时,返回“空值”
  7. 重试时,请返回2.
  8. 实际上不需要例外来处理错误的条目甚至是取消(2或6之后)。如果您的程序在访问文件系统或类似文件系统时遇到IOException,则可能会抛出其他一些异常。

    调用者应该具有的唯一负担是检查返回的“空值”(null或任何合适的值)以指示用户选择不想做某事 - 通常应提供的选项。