“ Throws”有什么作用?它有什么帮助?

我是Java的新手,刚刚遇到了在方法中使用“ Throws”关键字的教程。我对此进行了一些研究,但仍然不太了解。

从我到目前为止所看到的,它告诉编译器在该特定方法中可能抛出某些异常。为什么我们需要告诉编译器呢?我已经在我的方法中仅使用try-

catch语句制作了许多程序,并且效果很好-当然,这些try-catch语句可以管理异常,对吗?

回答:

您可以使用和如您所说 方法 管理异常。在这种情况下,您无需使用。例如:try``catch``throws

public void myMethod()

{

try {

/* Code that might throw an exception */

}

catch (SpaceInvadersException exception) {

/* Complicated error handling code */

}

}

但是,假设您有1000种方法,所有这些方法都可能抛出SpaceInvadersException。然后,您将不得不编写所有复杂的错误处理代码一千次。当然,你总是可以创建一个ErrorHandler类与dealWithSpaceInvadersException()方法,你可以从他们打电话,但你仍然可以用一千卡try-catch块。

相反,您告诉编译器这千个方法中的每一个都可能抛出SpaceInvadersException。然后,任何调用这些方法之一的方法都需要处理错误本身,方法是使用try-catch或告诉编译器 可能抛出SpaceInvadersException。使用throws关键字完成此操作,如下所示:

public void myMethod() throws SpaceInvadersException

{

/* Code that might throw an exception */

}

public void callingMethod()

{

try {

myMethod();

}

catch (SpaceInvadersException exception) {

/* Complicated error handling code */

}

}

在这种情况下,您需要通知编译器myMethod可能抛出SpaceInvadersException。这意味着您必须以某种方式(try-

catchthrows在调用方法上使用关键字)处理异常,才能调用该方法。如果throws不存在,则可以在不进行任何异常处理的情况下调用该方法,并获得程序中任何地方都未处理的异常(这很糟糕)。

由于它始终是更好地避免代码重复,通常最好的手掌掉错误处理的try-

catch在一个更高的水平功能比它是在所有的低水平方法分别处理。这就是为什么存在这种机制的原因。

以上是 “ Throws”有什么作用?它有什么帮助? 的全部内容, 来源链接: utcz.com/qa/428708.html

回到顶部