Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java中的异常处理:再次捕获并抛出

Java中的异常处理:再次捕获并抛出
EN

Stack Overflow用户
提问于 2020-10-30 20:23:56
回答 1查看 65关注 0票数 0

我正在学习一门Java编程课程,我们刚刚学习了Java中的异常处理。我在最后一次作业批改中看到了这段代码:

代码语言:javascript
运行
AI代码解释
复制
public int getWinner() throws IllegalArgumentException {
  int winner;

  try {
    winner = GameRules.getWinner(firstPlayer, secondPlayer);
  } catch (IllegalArgumentException e) {
    throw e;
  }

  return winner;
}

我的问题是:为什么我们首先捕获异常e,然后再次抛出它?我认为如果你这样做了,那么程序仍然会停止,所以它就像不处理异常一样。也许我错了,请指正,谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-30 20:36:23

有时,当您想要执行一些日志记录/记录一些指标作为流程的一部分时,您会捕获到一个异常。重新抛出异常意味着您可以将异常传递到调用堆栈的更高位置,这样它就可以由(集中式)错误处理程序处理。

并不是所有的异常都是不可恢复的,因为它们发生了,所以抛出异常并不一定会导致应用程序停止,除非它被允许在调用堆栈中向上冒泡。

捕获异常只是让您有机会在异常发生时决定下一步要做什么。捕获异常然后忽略它通常是不好的做法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64615301

复制
相关文章

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档