异常处理的方式二:throws+异常类型

Posted yhqtv-com

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异常处理的方式二:throws+异常类型相关的知识,希望对你有一定的参考价值。

 1 package com.yhqtv.demo01Exception;
 2 
 3 import java.io.File;
 4 import java.io.FileInputStream;
 5 import java.io.FileNotFoundException;
 6 import java.io.IOException;
 7 
 8 /*
 9  * 异常处理的方式二:throws+异常类型
10  *
11  *1.“throws+异常类型”写在方法的声明处,指明此方法执行时,可能会抛出的异常类型,
12  *          一旦当方法执行时,出现异常,仍会在异常处生成一个异常类的对象,此对象满足throws后异常
13  *          类型时,就会被抛出,异常代码后续的代码,就不再执行。
14  *
15  * 2.体会:try-catch-finally:真正的将异常给处理掉了、
16  *         throws的方式只是将异常抛给了方法的调用者,并没有真正将异常处理。
17  *
18  *3.开发中如何尊的使用两种处理异常方法?
19  *   a.如果父类中被重写的方法没有throws方式处理异常,则子类重写的方法也不能使用throws,意味着如果
20  *     子类重写的方法中有异常,必须使用try-catch-finally方式处理。
21  *   b.执行的方法a中,先后又调用了另外的几个方法,这几个犯法是递进关系执行的,我们建议这几个方法
22  *     使用throws的方式处理。而执行的方法a可以考虑使用try-catch-finally方式进行处理。
23  *
24  *
25  * 方法重写的规则之一:
26  * 子类重写的方法抛出的异常类型不大于父类的被重写的方法抛出的异常类型
27  * */
28 public class ExceptionTest2 {
29 
30     public static void main(String[] args)  {
31         try{
32             method2();
33         }catch (IOException e){
34             e.printStackTrace();
35         }
36 
37     }
38 
39     public static void method2() throws IOException {
40 
41         method1();
42     }
43 
44     public static void method1() throws FileNotFoundException, IOException {
45 
46         File file = new File("hello.txt");
47         FileInputStream fis = new FileInputStream(file);
48 
49         int data = fis.read();
50         while (data != -1) {
51             System.out.println((char) data);
52             data = fis.read();
53 
54         }
55         fis.close();
56 
57     }
58 
59 }

 

以上是关于异常处理的方式二:throws+异常类型的主要内容,如果未能解决你的问题,请参考以下文章

JAVA语言如何进行异常处理,关键字throws,throw,try,catch,finally分别代表啥意义在try块中抛出异常吗

异常的捕获及处理

java异常 throw和try-catch的关系

KotlinKotlin 与 Java 互操作 ③ ( Kotlin 中处理 Java 异常 | Java 中处理 Kotlin 异常 | @Throws 注解处理异常 | 函数类型互相操作 )

java中Debug调试异常的概念异常体系处理异常的关键字try/catch/finally/throw/throws多个异常使用捕获并处理的方式继承关系中处理异常自定义异常类

java中Debug调试异常的概念异常体系处理异常的关键字try/catch/finally/throw/throws多个异常使用捕获并处理的方式继承关系中处理异常自定义异常类