JAVA异常机制——什么是异常、异常体系结构、JAVA异常处理机制、处理异常、自定义异常、总结

什么是异常

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r0RQzM7s-1614504504896)(C:\Users\wl\AppData\Roaming\Typora\typora-user-images\image-20210127153548192.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oRu3SaMi-1614504504900)(C:\Users\wl\AppData\Roaming\Typora\typora-user-images\image-20210127163621586.png)]

就是:检查性的异常一定要加上try…catch…进行处理的,因为这段代码可能出现错误,可能不会出现错误,因为要看输入的一些东西对不对的上。这个一定幺加上的原因是程序害怕出错,就会提醒你,不然没办法编译啊。

运行时的异常就是数组越界啊这种,这种是相当于逻辑层面的错误,程序也检查不出来,所以要你自己看着办加上去。

JAVA异常处理机制

处理异常

处理异常有两种方案

1、try…catch…

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YkAEMK8J-1614504504902)(C:\Users\wl\AppData\Roaming\Typora\typora-user-images\image-20210228161404971.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KAeXwx8I-1614504504906)(C:\Users\wl\AppData\Roaming\Typora\typora-user-images\image-20210228162624319.png)]

package javacoretech;

public class demo001_exception {
    
    
    public static void main(String[] args) {
    
    
        System.out.println("开始");
        method();
        System.out.println("结束");
    }


    public static void method(){
    
    
        try {
    
    
            int[] arr = {
    
    1,2,3};
            System.out.println(arr[3]);
        }catch (ArrayIndexOutOfBoundsException e){
    
    
            System.out.println("你访问的数组的索引不存在");
            e.printStackTrace();                   //打印出来异常的信息在控制台
            System.out.println(e.getMessage());     //返回异常的详细信息
            System.out.println(e.toString());       //返回异常的简短信息
           
        }
    }
}

2、throws

如果采用了throws这种方案,将来用这个函数的时候还要用try catch进行处理,具体见下面的代码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MnhKHPjS-1614504504907)(C:\Users\wl\AppData\Roaming\Typora\typora-user-images\image-20210228165248530.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C4RPdOWn-1614504504909)(C:\Users\wl\AppData\Roaming\Typora\typora-user-images\image-20210228165816404.png)]

最后说一下一个容易忽略的点:

  • try块: 用于捕获异常。其后可接零个或多个 catch 块,如果没有 catch 块,则必须跟一个 finally 块。
  • catch块: 用于处理 try 捕获到的异常。
  • finally 块: 无论是否捕获或处理异常,finally 块里的语句都会被执行。当在 try 块或 catch 块中遇到 return 语句时,finally 语句块将在方法返回之前被执行。

自定义异常

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UwodHWbm-1614504504910)(C:\Users\wl\AppData\Roaming\Typora\typora-user-images\image-20210127174146884.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SabyvZTT-1614504504910)(C:\Users\wl\AppData\Roaming\Typora\typora-user-images\image-20210129154427287.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4OYDNbIf-1614504504911)(C:\Users\wl\AppData\Roaming\Typora\typora-user-images\image-20210228171504564.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UogOj9uM-1614504504912)(C:\Users\wl\AppData\Roaming\Typora\typora-user-images\image-20210129154521926.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yYRa9tqK-1614504504913)(C:\Users\wl\AppData\Roaming\Typora\typora-user-images\image-20210228171905716.png)]

猜你喜欢

转载自blog.csdn.net/qq_32651847/article/details/113393657