Java se异常笔记

Java se异常笔记

异常:是在运行时发生不正常情况.

在java中用类的形式对不正常情况进行了描述和封装对象.
描述不正常的情况的类,就是异常类.
以前正常流程代码和问题处理代码相结合。提高阅读性.
现在将正常流程代码和问题处理代码分离.

其实异常就是java通过面向对象的思想将问题封装成了对象.

用异常类对其进行描述.
不同的问题用不同的类进行具体的代码描述,比喻角标越界等.

问题很多,意味着描述的类很多.
将其共性进行向上抽取,形成了异常体系.

代码示例一:

//最终问题(不正常情况)就分为两大类
/*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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值