zoukankan      html  css  js  c++  java
  • Java连载62-使用throws关键字处理异常

    ​一、处理异常的两种方式

    1.所有的编译时异常,要求程序员在编写程序阶段,必须对它进行处理,如果不处理的话,编译就会无法通过,处理异常有两种方法:捕捉和声明抛出。

    2.捕捉:try.....catch.......

    3.声明抛出就是方法声明的位置上使用throws关键字抛出异常。

    4.所有RuntimeException的子类都是运行时异常,运行时异常程序员在编写阶段不需要对它进行处理。

    5.编译时异常发生的几率比较高;运行时异常发生的几率比较低。

    6.所有的Exception的直接子类都是“编译时异常”。

    二、处理异常有两种方式

    1.声明抛出 throws

    2.捕捉  try.....catch.......

    以下程序演示第一种方式:声明抛出,在方法声明的位置上使用throws关键字向上抛出异常。

    package com.bjpowernode.java_learning;
    
    import java.io.*;
    
    ​
    
    public class D62_1_ {
    
      public static void main(String[] args) throws FileNotFoundException{
    
        //创建一个文件输入流,读取文件
    
        //java编译器是如何知道以下的代码在执行过程可能存在异常
    
        //java编译器是如何知道这个异常发生的几率比较高呢?
    
        //java编译器不是那么智能,因为FileInputStream这个构造方法在声明的位置上使用了
    
        //throws FileNotFoundException;
    
        //FileInputStream fls = new FileInputStream("C:\Users\lenovo1\Desktop\微信公众号运营-Java\Java连载51-super关键字.docx");
    
    //    try{
    
        m1();
    
          //使用throws处理异常是不是真正处理异常而是推卸责任
    
          //谁调用就会跑给谁
    
          //上面的m1方法如果出现了异常,因为采用的是向上抛出,给了JVM,JVM遇到这个异常
    
          //就会退出JVM,下面的这个代码不会执行
    
    //    }catch(FileNotFoundException e) {
    
    //      System.out.println("出现了异常");
    
    //    }
    
      }
    
      public static void m1() throws FileNotFoundException{
    
        m2();
    
      }
    
      public static void m2() throws FileNotFoundException{
    
        m3();
    
      }
    
      public static void m3() throws FileNotFoundException{
    
        //FileNotFound构造方法声明位置上使用了throws(向上抛出)
    
        new FileInputStream("E:\04.image\timg.jpgu");
    
      }
    
    }

    异常出现了就一层一层往上抛。

    再看一下使用try....catch......来处理这些异常

      public static void main(String[] args) {
    
        //创建一个文件输入流,读取文件
    
        //java编译器是如何知道以下的代码在执行过程可能存在异常
    
        //java编译器是如何知道这个异常发生的几率比较高呢?
    
        //java编译器不是那么智能,因为FileInputStream这个构造方法在声明的位置上使用了
    
        //throws FileNotFoundException;
    
        //FileInputStream fls = new FileInputStream("C:\Users\lenovo1\Desktop\微信公众号运营-Java\Java连载51-super关键字.docx");
    
        try{
    
          m1();
    
          //使用throws处理异常是不是真正处理异常而是推卸责任
    
          //谁调用就会跑给谁
    
          //上面的m1方法如果出现了异常,因为采用的是向上抛出,给了JVM,JVM遇到这个异常
    
          //就会退出JVM,下面的这个代码不会执行
    
        }catch(FileNotFoundException e) {
    
          System.out.println("出现了异常");
    
        }
    
      }

    三、源码:

    D62_1_ThrowsOfException.java

    https://github.com/ruigege66/Java/blob/master/D62_1_ThrowsOfException.java

    2.CSDN:https://blog.csdn.net/weixin_44630050

    3.博客园:https://www.cnblogs.com/ruigege0000/

    4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

     

  • 相关阅读:
    万兆铜缆--七类双绞线--光纤等内容
    [51CTO]反客为主 ,Linux 成为微软 Azure 上最流行的操作系统
    [知乎]超线程对游戏来说真的没用吗?
    SQLSERVER2017 最新补丁发布方式
    MSTSC 修改端口的简单方法 3389
    使用WinSW 将 exe 创建成Windows下面 service的方法 (将nginx创建成 services)
    [时政]在美国,是参议院议长的权力大,还是众议院议长的权力大
    内网内使用https 和 使用http 建立连接的速度对比
    Windows下 OpenSSL的安装与简单使用
    [转发]VMware厚置备延迟置零 、 厚置备置零、精简置备 区别
  • 原文地址:https://www.cnblogs.com/ruigege0000/p/12071024.html
Copyright © 2011-2022 走看看