夯实Java基础--深入理解throws关键字

236 阅读2分钟

「这是我参与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关键字傻傻分不清,于是就有学习了以下,根据自己的理解写了这篇博客,希望对读者有所帮助。如有不正之处,欢迎掘友们留言指正,互相进步。