Java面试题|throw和throws的区别?

Posted 千锋Java学院

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java面试题|throw和throws的区别?相关的知识,希望对你有一定的参考价值。

每天一道面试模拟真题及解析





课前导读

●回复"每日一练"获取以前的题目,持续更新!

我希望大家积极参与!有什么不懂可以加小千微信进行讨论

★把面试准备工作,拆分、融入到平时每天


throw和throws的区别?

参考答案:


throw:

  • 表示方法内抛出某种异常对象(只能是一个)
  • 用于程序员自行产生并抛出异常
  • 位于方法体内部,可以作为单独语句使用
  • 如果异常对象是非 RuntimeException 则需要在方法申明时加上该异常的抛出,即需要加上 throws 语句 或者 在方法体内 try catch 处理该异常,否则编译报错
  • 执行到 throw 语句则后面的语句块不再执行

throws:
  • 方法的定义上使用 throws 表示这个方法可能抛出某些异常(可以有多个)
  • 用于声明在该方法内抛出了异常
  • 必须跟在方法参数列表的后面,不能单独使用
  • 需要由方法的调用者进行异常处理

package constxiong.interview;

import java.io.IOException;

public class TestThrowsThrow {

public static void main(String[] args) {
testThrows();

Integer i = null;
testThrow(i);

String filePath = null;
try {
testThrow(filePath);
} catch (IOException e) {
e.printStackTrace();
}
}

/**
* 测试 throws 关键字
* @throws NullPointerException
*/

public static void testThrows() throws NullPointerException {
Integer i = null;
System.out.println(i + 1);
}

/**
* 测试 throw 关键字抛出 运行时异常
* @param i
*/

public static void testThrow(Integer i) {
if (i == null) {
throw new NullPointerException();//运行时异常不需要在方法上申明
}
}

/**
* 测试 throw 关键字抛出 非运行时异常,需要方法体需要加 throws 异常抛出申明
* @param i
*/

public static void testThrow(String filePath) throws IOException {
if (filePath == null) {
throw new IOException();//运行时异常不需要在方法上申明
}
}
}





推 荐 阅 读:








点击 阅读原文 抢预约免费试听课程名额

以上是关于Java面试题|throw和throws的区别?的主要内容,如果未能解决你的问题,请参考以下文章

最常见的Java面试题及答案汇总

最常见的Java面试题及答案汇总

Java基础面试题

java 19 - 7 throw和throws的区别

Java面试题22 JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?

Java面试题总结 | Java基础部分(持续更新)