【问题标题】:Declaring or surrounding the exception with try/catch block in java在 java 中使用 try/catch 块声明或包围异常
【发布时间】:2016-10-12 20:58:48
【问题描述】:

Java 说如果我们从一个方法中抛出一个检查异常,那么我们要么必须声明它,要么用 try/catch 块包围它。 我不明白为什么要用 try/catch 块声明或包围它,因为仅仅通过声明异常我们无法处理异常,但是当我们用 try/catch 块包围它时,我们可以处理它。 如果是上述情况,那么如何将其视为另一种的替代品?

【问题讨论】:

  • 这是一种替代方案,因为代码只有在您执行其中一个或另一个时才会编译。这并不意味着抛出异常与捕获异常是一回事。如果你想扔它,那么你需要 throws,如果你想抓住它,你需要 try/catch。如果你没有在 throws 子句中指定它,也没有捕获它,它就不会编译。

标签: java exception try-catch throws


【解决方案1】:

有两种选择 1. 抛出异常 -> 这意味着如果异常条件发生,程序期望调用者处理它。 2. Try/catch -> 这意味着方法本身会处理它。

差异是微妙的,是的,有时我们会在下一层捕获我们抛出的异常。但是,如果您仔细考虑这些陈述,这就是这两种方法之间的核心区别。

在大型团队中,我们经常有子团队在层级上工作。内层可能只是选择抛出异常并停止进一步执行流程。外层应该捕获它并显示优雅的错误消息或优雅的方式来处理这些异常,以便用户不会看到 Java 堆栈跟踪。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-23
    • 2014-08-28
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-20
    相关资源
    最近更新 更多