Java--常见的异常类型

Java——常见的异常类型

ClassCastException异常

这是强制类型转换错误,我们在定义多个子类时难免会使用到强制类型转换,而错误的强制类型转换就会产生这种异常

比如,我们定义一个父类Car,子类bm、bc

Car c1 = new bm();
Car c2 = new bc();
bm b = (bm)c1;
bm b1 = (bm)bc;//ClassCastException异常

因为强制类型转换的前提是父类引用指向的对象的类型是子类的时候才可以进行强制类型转换,而代码块中的第四行属于同级别转换,会产生这种异常

NullPointerException异常

NullPointerException 是空指针异常,当引用没有指向具体的实例,在访问这个引用时就会产生空指针异常

public static void main(String[] args) {
    String  s = null;
       s.length();//当想访问 s.length()时,因为字符串内容为空,会产生空指针异常
    }
 

NumberFormatException异常

当把一个字符串转为数字类型时,若字符串中含有非数字,则有可能会产生这种错误

public class Lqbz {
    public static void main(String[] args) {
        String x = "1234e5"; 
        int a1 = Integer.parseInt(x);
        System.out.println(a1);
    }

}

递归调用过多,栈溢出

在递归调用的时候需要把调用的状态保存起来,如果递归的深度达到一定程度,将产生堆栈溢出的异常。如果虚拟机的内存比较小,而程序对内存的要求比较高,则可能产生内存溢出错误。

public class Demo1 {

    public static void main(String[] args) {
        Demo1 demo1 = new Demo1();
               demo1.sum(10);
    }
    public int sum(int num){
        return num+sum(num-1);
    }

ArrayIndexOutOfBoundsException异常

数组越界异常

            int [] a = new int[5];//01234
                a[5]= 10;

代码中数组长度为五,但定义了第六个索引的值,因此引发数组越界异常

ArithmeticException异常

算数异常

当除数为0时,
如果运算的结果是无线循环的小数,并且在除的时候没有对结果设置精确的位数,这时就会抛出异常

int a = 10;
        int b = 0;
        System.out.println(a/b);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值