我需要处理一个字符串数组,其中包含整数(正数(作为字符串和字符串"POP"。
当 Integer 时,我需要将整数推送到整数堆栈中
当"POP"时,我需要删除最上面的元素。 最后,我需要返回最顶层的元素。
如果堆栈在处理输入期间或结束时的任何时间点为空,我需要返回 -1(错误(。如果错误,我不需要做任何其他事情。
我已经通过用 try catch 块包围它来实现这一点,如下所示:
try {
//logic
}
catch (EmptyStackException) {
return -1;
}
我的问题是,这是一种好方法 - 在这样的场景中抛出和捕获运行时异常?如果没有,最好的做法是什么?
Throwable(异常和错误(的优点是它们包含其他信息,例如堆栈跟踪,错误消息等
对于你的场景,我认为没有必要添加额外的信息,例如"哪一部分代码导致-1","-1的原因是什么","返回-1的详细解释是什么"等
因此,请:
if(stack.isEmpty()) { return -1 } else { // logic }
就足够了