「这是我参与11月更文挑战的第8天,活动详情查看:2021最后一次更文挑战」
前言
大家好,我是程序猿小白 GW_gw,很高兴能和大家一起学习进步。
关于throw的使用可以参考: 夯实Java基础--深入理解throw关键字
以下内容部分来自于网络,如有侵权,请联系我删除,本文仅用于学习交流,不用作任何商业用途。
摘要
本文主要介绍Java中Throws关键字的使用和与throw的一些区别。
throws关键字
在当前的方法不知道如何处理该异常时,就可以使用throws关键之来抛出异常,表明由上一级的调用者来处理该异常,如果一直没有找到能解决该异常的调用者,最终会由JVM虚拟机来处理该异常。JVM处理异常的方法是,打印异常的跟中栈信息,并且终止程序运行。
调用使用了throws关键字来抛出异常的方法时,需要使用try catch来处理,或者放在另一个使用了throws的方法中。
如下例:
public class Throws {
public static void main(String[] args) {
//调用带有throws的方法时,放在try catch块中
try {
throwsTest();
}catch(Exception e){
System.out.println(e.getMessage());
}
}
public static void throwsTest() throws IOException {
FileInputStream fileInputStream = new FileInputStream("file.txt");
System.out.println("这是带有throws的方法!");
}
}
public class Throws {
public static void main(String[] args) throws Exception{
//调用带有throws的方法时,放在带有throws的另一个方法中
throwsTest();
}
public static void throwsTest() throws IOException {
FileInputStream fileInputStream = new FileInputStream("file.txt");
System.out.println("这是带有throws的方法!");
}
}
使用throws的限制:
子类重写父类的带有throws的方法时,使用throws抛出的异常不能比父类方法中抛出的异常的范围大,否则无法通过编译。
throws和throw的区别
throws是用来抛出当前方法不能处理的异常,把它交给上层调用者处理,而throw是用来抛出一个不符合当前业务需求的异常实例。通常和catch一起使用。
结语
我以前也是对throw和throws关键字傻傻分不清,于是就有学习了以下,根据自己的理解写了这篇博客,希望对读者有所帮助。如有不正之处,欢迎掘友们留言指正,互相进步。