Java 使用RuntimeExceptions进行错误处理是一种好的做法吗?

Java 使用RuntimeExceptions进行错误处理是一种好的做法吗?,java,exception-handling,runtimeexception,Java,Exception Handling,Runtimeexception,我需要处理一个字符串数组,其中包含正整数作为字符串和字符串POP 当使用整数时,我需要将整数推送到一堆整数中 当弹出时,我需要删除最上面的元素。 最后,我需要返回最上面的元素 如果堆栈在处理输入期间的任何时间点或在其结束时为空,则需要返回-1错误。如果是错误,我不需要做任何其他事情 我通过使用try-catch块围绕它实现了这一点,如下所示: try { //logic } catch (EmptyStackException) { return -1; } 我的

我需要处理一个字符串数组,其中包含正整数作为字符串和字符串POP

当使用整数时,我需要将整数推送到一堆整数中

当弹出时,我需要删除最上面的元素。 最后,我需要返回最上面的元素

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

我通过使用try-catch块围绕它实现了这一点,如下所示:

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

我的问题是,在这样的场景中抛出和捕获运行时异常是一种好方法吗?如果不是,最佳做法是什么?

可丢弃异常和错误的优点是它们包含额外的信息,如堆栈跟踪、错误消息等

对于您的场景,我认为没有必要添加额外的信息,例如代码的哪个部分导致-1,导致-1的原因是什么,返回-1的详细解释是什么,等等

这样做:

ifstack.isEmpty{return-1}else{//logic}


如果弹出并堆叠就足够了。isEmpty->return-1@assylias我明白你的意思。但是有没有理由不使用RunTimeException呢?例如,如果还有其他操作,例如+将添加最上面的两个元素,那么使用EmptyStackException不是更容易吗?如果stack.size>=2?一般来说,对控制流使用异常不是一个好的实践。这也意味着速度会变慢。