当前位置: 首页 > 面试题库 >

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

严瑞
2023-03-14
问题内容

我是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在一个更高的水平功能比它是在所有的低水平方法分别处理。这就是为什么存在这种机制的原因。



 类似资料:
  • 本文向大家介绍什么是React.forwardRef?它有什么作用?相关面试题,主要包含被问及什么是React.forwardRef?它有什么作用?时的应答技巧和注意事项,需要的朋友参考一下 React.forwardRef 会创建一个React组件,这个组件能够将其接受的 ref 属性转发到其组件树下的另一个组件中。这种技术并不常见,但在以下两种场景中特别有用: 转发 refs 到 DOM 组件

  • 本文向大家介绍什么是zoom?它有什么作用?相关面试题,主要包含被问及什么是zoom?它有什么作用?时的应答技巧和注意事项,需要的朋友参考一下 zoom是缩放比例,可以将元素进行缩放。 和css3中的transform:scale() 作用类似. 两者区别在于缩放的参照点不一样,zoom针对元素左上角,scale针对元素正中心

  • 问题内容: 精油 这到底是什么! 编辑:如果可以的话,请您写一两行并说明其工作原理? 问题答案: 试试这个简单的程序,命名为 并尝试执行 注意什么是argv。

  • 本文向大家介绍vue-loader是什么?它有什么作用?相关面试题,主要包含被问及vue-loader是什么?它有什么作用?时的应答技巧和注意事项,需要的朋友参考一下 Vue Loader 是一个 webpack 的 loader,它允许你以一种名为单文件组件 (SFCs)的格式撰写 Vue 组件。 https://vue-loader.vuejs.org/zh/#vue-loader-%E6%9

  • 本文向大家介绍contextType是什么?它有什么用?相关面试题,主要包含被问及contextType是什么?它有什么用?时的应答技巧和注意事项,需要的朋友参考一下 定义当前组件要使用哪一个context

  • 本文向大家介绍childContextTypes是什么?它有什么用?相关面试题,主要包含被问及childContextTypes是什么?它有什么用?时的应答技巧和注意事项,需要的朋友参考一下 childContextTypes用来定义context数据类型,该api从16.3开始已被废弃 使用方式