• 检测性异常(案例)


    看几段代码:

    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    
    // 检测异常 (编译期间产生异常)
    public class CheckExceptionTest {
    
        public static void main(String[] args) {
            
            FileInputStream fis =null;
            try {
                System.out.println("1");      
                
                fis = new FileInputStream("d:/nba.txt");    //找不到指定路径下的文件 ,则产生FileNotFoundException异常
                
                System.out.println("2");     
                
            }catch (FileNotFoundException e) {              
                
                System.out.println("3");            
                
                System.out.print("产生文件找不到异常:");
                e.printStackTrace();                      
                System.out.println("4");                
            }
            
            try {
                System.out.println("5");
                
                fis.close();                                       
                
                System.out.println("6");
                
            }catch(IOException e){
                   System.out.println("7");
                   System.out.print("产生IO流异常:");
                   e.printStackTrace();
                   System.out.println("8");
                   
                  }catch (NullPointerException e) {      
                   System.out.print("产生空指针异常:");
                   e.printStackTrace();
                  
                  
                 }
            
             
            System.out.println("程序正常结束了");     
        }
        
    
    }

    上面代码 要 分 3种情况讨论:

    1.若程序不产生异常,正常执行的情况:

    1
    2
    5
    6
    程序正常结束了

    2.若程序产生异常

    .        若在d:/nba.txt该路径下 不存在nba.txt文件,  则 产生 文件找不到异常

              且因为FileInputStream fis =null;  则 fis.close()方法 还会产生 空指针异常

    2.1没有处理产生的空指针异常  (即,把上面代码中的下面部分代码注释掉)

    //              catch (NullPointerException e) {      
    //               System.out.print("产生空指针异常:");
    //               e.printStackTrace();
    //              
    //              
    //

     结果:

    1
    3
    产生文件找不到异常:java.io.FileNotFoundException: d:
    ba.txt (系统找不到指定的文件。)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:131)
        at java.io.FileInputStream.<init>(FileInputStream.java:87)
        at com.monkey1029.CheckExceptionTest.main(CheckExceptionTest.java:16)
    4
    5
    Exception in thread "main" java.lang.NullPointerException
        at com.monkey1029.CheckExceptionTest.main(CheckExceptionTest.java:32)

    2.2 对产生的空指针异常进行了处理

    1
    3
    产生文件找不到异常:java.io.FileNotFoundException: d:
    ba.txt (系统找不到指定的文件。)
    4
    5
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:131)
        at java.io.FileInputStream.<init>(FileInputStream.java:87)
        at com.monkey1029.CheckExceptionTest.main(CheckExceptionTest.java:16)
    产生空指针异常:java.lang.NullPointerException
        at com.monkey1029.CheckExceptionTest.main(CheckExceptionTest.java:32)
    程序正常结束了
  • 相关阅读:
    javascript--运算符
    线程池 的创建小列子,以及参数的介绍
    @SpringBootApplication注解
    SpringBoot 基础知识学习(二)——配置文件多环境配置
    springboot 配置文件读取的两种方式,以及使用到的注解解释
    用虚拟机安装了一台Linux系统,突然想克隆一台服务器,克隆后发现无法上网,如何解决?
    ---oracle 数据库的设计,PL/SQL(loop,for,if,case,while)
    xml的解析技术, 它们之间的区别?
    -----oracle优化之表分区
    --------oracle 的伪表和伪劣,简单的分页
  • 原文地址:https://www.cnblogs.com/penguin1024/p/11804964.html
Copyright © 2020-2023  润新知