2016-06-12 77 views
0

Java的说,如果我们从一个方法,抛出一个checked异常然后要么我们必须声明或用try/catch块围绕着它。 我不明白为什么它用try/catch块声明或包围它,因为只是通过声明异常我们不能处理异常,但是当我们用try/catch块包围它时,我们可以处理它。 如果上述情况如此,那么如何将其视为另一种替代方案?声明或周围有try/catch块异常在Java中

+0

[指定由方法抛出的异常](http://docs.oracle.com/javase/tutorial/essential/exceptions/declaring.html) – Arc676

+2

这是一种替代方法,它的代码只有在你编译时才会被编译做一个或另一个。这并不意味着抛出异常与捕捉异常是一回事。如果你想扔它,那么你需要抛出,如果你想抓住它,你需要尝试/抓住。如果你没有在throws子句中指定它,也不要捕获它,它不会编译。 –

回答

0

有两个选项可用 1.抛出异常 - >这意味着如果发生异常情况,程序需要调用者处理它。 2.尝试/ catch - >这意味着该方法本身将处理它。

差异是微妙的,是的,有时我们捕捉到我们在下一层抛出的异常。但是,如果仔细考虑这些说法,那就是两种方法的核心区别。

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

希望这会有所帮助。