try-catch和java之间的区别

try-catch和throw子句有什么区别? 何时使用这些?

请告诉我 。

  • try块将执行一个可能会抛出exception的敏感代码
  • catch块将在try块中抛出exception(被捕获的types)时使用
  • 在try / catch块之后, finally块都被调用。 即使这个exception没有被捕获,或者你以前的块中断了执行stream程。
  • throw关键字将允许你抛出一个exception(这会破坏执行stream,并且可以被catchcatch )。
  • 方法原型中的throws关键字用于指定您的方法可能会抛出指定types的exception。 当你检查了你不想捕获你当前的方法的exception(你必须处理的exception)时,这是很有用的。

资源:

  • oracle.com – 课程:例外

另一方面,你应该真的接受一些答案。 如果有人遇到和你一样的问题,并find你的问题,他/她会很乐意直接看到这个问题的正确答案。

如果执行下面的例子,你会知道Throw和Catch块之间的区别。

笼统:

catch块将处理exception

抛出将把错误传递给他的调用者。

在以下示例中,错误发生在throwsMethod()中,但在catchMethod()中处理。

 public class CatchThrow { private static void throwsMethod() throws NumberFormatException { String intNumber = "5A"; Integer.parseInt(intNumber); } private static void catchMethod() { try { throwsMethod(); } catch (NumberFormatException e) { System.out.println("Convertion Error"); } } public static void main(String[] args) { // TODO Auto-generated method stub catchMethod(); } } 

尝试/ catch和throw子句是为了不同的目的。 所以他们不是彼此替代的,但他们是互补的。

  1. 如果你在你的代码中抛出了一些检查的exception,它应该在代码调用层次结构中的try / catch中。

  2. 相反,只有当代码中有一些throw子句(你的代码或API调用)抛出检查exception时,才需要try / catch块。

有时,如果在调用代码块中要处理的特定情况发生时,您可能要抛出exception,并且在某些情况下处理某个exceptioncatch块并再次抛出相同或不同的exception以在调用块中处理。

所有这些关键字尝试,catch和throw都与java中的exception处理概念有关。 程序执行期间发生的事件是一个例外。 exception破坏了应用程序的正常stream程。 exception处理是一种用于处理exception的机制,可以保持正常的应用程序stream。 Try-catch块用于处理exception。 在try块中,我们编写可能抛出exception的代码,并在catch块中编写处理该exception的代码。 Throw关键字用于显式抛出exception。 通常,throw关键字用于抛出用户定义的exception。

欲了解更多详情,请访问Java教程的初学者 。

其他人已经给出了全面的答案,但是如果你正在寻找更多的信息,Oracle Java教程总是一个很好的资源。 下面是Exceptions的Java教程,其中详细介绍了所有的问题。 https://docs.oracle.com/javase/tutorial/essential/exceptions/index.html

尝试 – 添加敏感的代码捕获 – 最后处理exception – 总是执行是否捕获exception。 与try -catch相关联。 用于closures我们在try块中打开的资源throw – 将手动创build的exception切换到JVM。 用于抛出定制的exception抛出 – 将exception处理的责任委托给调用者方法或主方法。