JAVA异常笔记总结

java基础中异常主要涉及以下几个方面的问题

一。异常的体系

二。常见的异常

三。异常的处理----try{}catch{}方式

四。异常的处理方式二----throw方式

五。手动抛出异常

六。自定义异常


一。异常的体系
在这里插入图片描述

JAVA异常一共分为两个类: 红色为受检异常,编写代码的时候,需要手动处理异常(抛出或者处理到try…catch),蓝色是非受检异常,编写代码的时候,不需要手动处理异常,当运行时出现错误,终止运行。

ErrorException 他俩都是Throwable的子类,Error表示是jvm内部的错误,比如StackOverflowerError(堆栈满了)和OOM(内存溢出),一般通过更改代码没有办法解决。Exception是我们编写代码可以解决的异常,IO异常下面的(文件找不到等),反射下面的(ClassNotFoundException),在另一个包中调用clone且没有实现Cloneable接口的时候(CloneNotSupporterException)这些都是需要在编写代码的时候手动处理的,而RuntimeException(运行时异常)则不一定需要在编写代码的时候处理,因为他不一定会有异常(比如正常计算不会有问题,当除以0时就会报算术异常),当异常发生时,代码终止。以上就是

二。常见的异常
java.lang.RuntimeException
 ClassCastException
 ArrayIndexOutOfBoundsException
 NullPointerException
 ArithmeticException
 NumberFormatException
 InputMismatchException
java.io.IOExeption
  FileNotFoundException
  EOFException

java.lang.ClassNotFoundException
java.lang.InterruptedException
java.io.FileNotFoundException
java.sql.SQLException

三。异常的处理方式try{}catch{}
四。throws抛出异常
当在方法中产生异常时,当前方法不知该如何处理当前异常的时候,可以通过throws向上抛,如果被如果调用当前方法的方法也没有处理可以继续向上抛,知道try{}catch{}finally{},如果一一直没有try{}catch{}则会在main方法中运行时产生异常时,程序终止。
当子类重写带有异常的方法时,子类抛出的范围不能大于父类抛出的异常。
五。throw手动抛异常
六。自定义异常
步骤:
1)继承已有异常类
2)生成一个serialVersionUID
3)写几个重载的构造方法
4)自定义的异常通过throw抛出
5)e.printStackTrace(),e.getMessage()方法获取异常信息

public class TestRandomAccessFile {
    
    
    public static void main(String[] args) {
    
    
        try{
    
    
            math(0);
        }catch (Exception e ){
    
    
            System.out.println(e.getMessage());
        }
    }
    public static void math(int a) throws RuntimeException{
    
    
        if(a==0){
    
    
            throw new MathExecption("计算错误");
        }
    }
}



public class MathExecption extends RuntimeException  {
    
    
    private static final long serialVersionUID = 7517618000614643801L;

    public MathExecption(String message){
    
    
        super(message);
    }
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Insect_boy/article/details/113116167
今日推荐