Java异常类型及处理详情

 更新时间:2021年09月25日 17:31:17   作者:嘻嘻硕  
这篇文章主要介绍了Java异常类型及处理, 异常指的是程序在执行过程中,出现了非正常情况,导致了java的jvm停止。感兴趣的小伙伴就和小编一起来学习下面文章的具体内容吧

异常结构为:

Throwable 为顶级父类

  • 子类Error为严重报错 ,
  • 子类Exception就是我们所说的异常了

一、异常处理的关键字

java中处理异常的有五个关键字: trycatch finally throw throws

throw抛出异常 , thorws声明异常 , 捕获异常 try_catch

1、throw

public class SegmentFault {
    public static void main(String[] args) {

        /**
         *  throw 抛出异常
         *    格式 - throw new 异常类名(参数);
         * */

        // 创建一个数组
        int [] arr = { 2, 4, 56 ,5};
        // 根据索引找到对应的元素
        int index = 4;
        int element = getElement(arr,index);
        System.out.println(element);
        System.out.println("owo"); // 运行错误 无法继续
    }
        /** throw 抛出异常 提醒你必须处理  */
    public static int getElement(int [] arr, int index){
        // 判断数组索引是否越界
        if (index < 0  || index > arr.length -1){
            /**
             * 条件满足越界 当执行到throw抛出异常后就无法运行,结束方法并且提示
             * */
            throw new ArrayIndexOutOfBoundsException("数组下标越界异常");
        }
        int element = arr[index];
        return element;
    }
}    

异常结果为:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 数组下标越界异常

2、throws

public class SegmentFault{
    public static void main(String [] args){
    
        read("a.txt");
        
    }
      public static void read(String path) throws FileNotFoundException, IOException {
        if (!path.equals("a.txt")){  // 如果没有a.txt
            // 如果不是 a.txt 该文件不存在 是一个错误 也就是异常 throw
            throw new FileNotFoundException("文件不存在");
        }
        if (!path.equals("b.txt")){
            throw new IOException("文件不存在");
        }
    }
    
}

异常结果为:

Exception in thread "main" java.io.IOException: 文件不存在

trycatchfinally + Throwable中的常用方法。

Throwable常用方法如下:

  • printStackTrace() : *打印异常详细信息。
  • getMessage() : 获取异常原因。
  • toString(): 获取异常类型及描述信息。
public class Demo03 {
    public static void main(String[] args) {

        /**
         *  try- catch  捕获异常
         * */


        // 可能会生成的异常
        try {     // 捕获或者声明
            read("b.txt");
        } catch (FileNotFoundException e) {   // 使用某种捕获,实现对异常的处理
            System.out.println(e);
            /**
             *  Throwable中的查看方法
             *  getMessage 获取异常信息  提示给用户看的
             *  toString   获取异常的类型和异常描述(不用)
             *  printStackTrace
             * */
            
            
            System.out.println("Throwable常用方法测试");
            System.out.println(e.getMessage()); // 文件不存在
            System.out.println(e.toString());
            e.printStackTrace();
            
            

        } finally {
            System.out.println("不管程序怎样,这里都会被执行");
        }

        System.out.println("over");

    }

    public static void read(String path) throws FileNotFoundException {
        if (!path.equals("a.txt")) {
            throw new FileNotFoundException("文件不存在");
        }
    }
    
}

输出结果为:

java.io.FileNotFoundException: 文件不存在
-----Throwable常用方法测试------
文件不存在
java.io.FileNotFoundException: 文件不存在
不管程序怎样,这里都会被执行

注意事项 :trycatchfinally、都不可以单独使用

到此这篇关于Java异常类型及处理详情的文章就介绍到这了,更多相关Java异常类型及处理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解使用zxing库生成QR-Code二维码

    详解使用zxing库生成QR-Code二维码

    这篇文章主要介绍了详解使用zxing库生成QR-Code二维码的相关资料,需要的朋友可以参考下
    2017-05-05
  • springmvc处理模型数据ModelAndView过程详解

    springmvc处理模型数据ModelAndView过程详解

    这篇文章主要介绍了springmvc处理模型数据ModelAndView过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • Java实现Excel导入导出数据库的方法示例

    Java实现Excel导入导出数据库的方法示例

    这篇文章主要介绍了Java实现Excel导入导出数据库的方法,结合实例形式分析了java针对Excel的读写及数据库操作相关实现技巧,需要的朋友可以参考下
    2017-08-08
  • Java多线程中的单例模式两种实现方式

    Java多线程中的单例模式两种实现方式

    这篇文章主要介绍了Java多线程中的单例模式两种实现方式的相关资料,需要的朋友可以参考下
    2017-04-04
  • springboot集成es详解

    springboot集成es详解

    这篇文章主要介绍了springboot集成es,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • SpringBoot中的自定义Banner详细解析

    SpringBoot中的自定义Banner详细解析

    这篇文章主要介绍了SpringBoot中的自定义Banner详细解析,Banner即横幅标语,我们在启动SpringBoot项目时会将Banner信息打印至控制台,我们可以输出一些图形、SpringBoot版本信息等内容,需要的朋友可以参考下
    2024-01-01
  • springboot 跨域配置类及跨域请求配置

    springboot 跨域配置类及跨域请求配置

    这篇文章主要介绍了springboot 跨域配置类及跨域请求配置,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01
  • SpringBoot处理全局统一异常的实现

    SpringBoot处理全局统一异常的实现

    这篇文章主要介绍了SpringBoot处理全局统一异常的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • 面试Spring中的bean线程是否安全及原因

    面试Spring中的bean线程是否安全及原因

    这篇文章主要为大家介绍了面试中常问的Spring中bean线程是否安全及原因,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-03-03
  • Java 高并发八:NIO和AIO详解

    Java 高并发八:NIO和AIO详解

    本文主要介绍Java 高并发NIO和AIO 的知识,这里整理了详细的资料,并详细介绍了 1. 什么是NIO 2. Buffer 3. Channel 4. 网络编程 5. AIO的知识,有需要的小伙伴可以参考下
    2016-09-09

最新评论