欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java se异常笔记

程序员文章站 2022-06-09 20:07:50
...

java se异常笔记

异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。
示例代码一:

//最终问题(不正常情况)就分为两大类
/*Throwable:无论error还是异常,问题,问题发生就应该可以抛出,让调用者知道并处理。
 * 该体系的特点就在于Throwable及所有的子类都具有可抛性
 * 具体通过两个关键字来体现的
 * throws throw ,凡是可以被这两个关键字所操作的类和对象都具有可抛性
 *      |--1,一般不可处理的。Error
 *      |--2,可以处理的。Exception
 * 
*/
class Test{
    public static void main(String[] args){
        int[] arr = new int[3];
        arr = null;
        //System.out.println(arr[3]);
        sleep(-5);
    }
    public static void sleep(int time){
        if(time<0){
            new FuTime();//就是时间为负的情况
        }
        if(time>1000000){
            new BigTime();
        }
        System.out.println("我睡。。。"+time);
    }
}
class FuTime{

}
class BigTime{

}

输出结果:

我睡。。。-5

示例代码二:

class Demo{
    public int method(int [] arr,int index){
        if(arr==null){
            throw new NullPointerException("数组的引用不能为空");
        }
        if(index>=arr.length){
            throw new ArrayIndexOutOfBoundsException("数组角标越界了:"+index);
        }
        if(index<0){
            throw new ArrayIndexOutOfBoundsException("数组角标不能为负数:"+index);
        }
        return arr[index];
    }
}
class Test2 {
        public static void main(String[] args){
            int[] arr = new int[3];

            Demo d = new Demo();
            int num = d.method(null, 30);
            System.out.println("num"+num);
            System.out.println("Over");
        }
}

输出结果二:

Exception in thread “main” java.lang.NullPointerException: 数组的引用不能为空
at Demo.method(Test2.java:4)
at Test2.main(Test2.java:20)