【问题标题】:Is it a good practise to use RuntimeExceptions for Error Handling? [closed]使用 RuntimeExceptions 进行错误处理是一种好习惯吗? [关闭]
【发布时间】:2017-07-18 23:06:54
【问题描述】:

我需要处理一个包含整数(正数)的字符串数组作为字符串和字符串“POP”。

当整数时,我需要将整数压入整数堆栈

当“POP”时,我需要删除最上面的元素。 最后,我需要返回最顶层的元素。

如果堆栈在处理输入期间或结束时的任何时间点为空,我需要返回 -1(错误)。如果出现错误,我不需要做任何其他事情。

我通过用如下的 try catch 块包围它来实现这一点:

try {
   //logic
}
catch (EmptyStackException) {
            return -1;
}

我的问题是,这是一种好方法吗 - 在这样的场景中抛出和捕获 RunTimeExceptions?如果没有,最好的做法是什么?

【问题讨论】:

  • 如果 POP 和 stack.isEmpty() -> 返回 -1
  • @assylias 我明白你的意思。但是有理由不使用 RunTimeException 吗?例如,如果还有其他操作,例如“+”,它会添加两个最上面的元素 - 使用 EmptyStackException 不是更容易吗?
  • 如果 stack.size() >= 2?一般来说,对控制流使用异常并不是一个好习惯。它也更慢。

标签: java exception-handling runtimeexception


【解决方案1】:

Throwable(异常和错误)的优点是它们包含附加信息,例如堆栈跟踪、错误消息等

对于你的场景,我相信没有必要添加诸如“代码的哪一部分导致-1”、“-1的原因是什么”、“返回-1的详细解释是什么”之类的额外信息等

这样做:

if(stack.isEmpty()) { return -1 } else { // logic }

足够了

【讨论】:

    猜你喜欢
    • 2013-03-30
    • 2015-02-18
    • 2016-03-20
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 2017-04-28
    • 2010-09-14
    • 2013-10-21
    相关资源
    最近更新 更多