JAVA-常用异常解释

JAVA-常用异常解释

运行时异常描述

异常 描述
ArithmeticException 当出现异常的运算条件时,抛出此异常。例如,一个整数"除以零"时,抛出此类的一个实例
ArrayIndexOutOfBoundsException 读取数组索引时下标越界抛出异常
IllegalArgumentException 抛出的异常表明向方法传递了一个不合法或不正确的参数
ArrayStoreException 试图将错误类型的对象存储到一个对象数组时抛出的异常
ClassCastException 当试图将对象强制转换为不是实例的子类时,抛出该异常
IllegalMonitorStateException 抛出的异常表明某一线程已经试图等待对象的监视器,或者试图通知其他正在等待对象的监视器而本身没有指定监视器的线程
IllegalStateException 在非法或不适当的时间调用方法时产生的信号。换句话说,即 Java 环境或 Java 应用程序没有处于请求操作所要求的适当状态下
IllegalThreadStateException 线程没有处于请求操作所要求的适当状态时抛出的异常
IndexOutOfBoundsException 指示某排序索引(例如对数组、字符串或向量的排序)超出范围时抛出
NegativeArraySizeException 如果应用程序试图创建大小为负的数组,则抛出该异常
NullPointerException 当应用程序试图在需要对象的地方使用 null 时,抛出该异常
NumberFormatException 当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常
SecurityException 由安全管理器抛出的异常,指示存在安全侵犯
StringIndexOutOfBoundsException 此异常由 String 方法抛出,指示索引或者为负,或者超出字符串的大小
UnsupportedOperationException 当不支持请求的操作时,抛出该异常

声明自定义异常

//继承Exception类
public class MyException extends Exception{
    
    

    //需要保存的参数可以自己定义
    private Integer code;
    private String msg;

    //构造方法
    public MyException(Integer code, String msg) {
    
    
        this.code = code;
        this.msg = msg;
    }

    public Integer getCode() {
    
    
        return code;
    }

    public String getMsg() {
    
    
        return msg;
    }
}
class TestMyException{
    
    

    //检查正负
    public void isItPositive(int num) throws MyException {
    
    
        if (num < 0) {
    
    
            //如果是负数异常
            throw new MyException(500,"传入的是复数");
        }else {
    
    
            System.out.println("当前数字:"+num);
        }
    }

    //测试自定义异常
    public static void main(String[] args) {
    
    
        TestMyException testMyException = new TestMyException();
        try {
    
    
            testMyException.isItPositive(-1);
        } catch (MyException e) {
    
    
            System.out.println("异常编码:"+e.getCode()+"异常信息:"+e.getMsg());
        }
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_44642403/article/details/112311500