JAVA基础知识(异常)

异常

  • 异常:

    程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。

  • 异常分类:

    编译时异常 运行时异常

  • 异常捕获:

    try…cath…finally

  • 异常的抛出:

    throw

  • 制造异常:

    throw

    • 异常体系 : Throwable / \ Error Exception / \ Runtime Checked Exception Exception

Error: 错误,一般是由虚拟机生成脱出的,不由程序猿控制

Exception:异常

RuntimeException 运行时异常:

        发生在程序运行期间,一旦遇到下面代码无法执行,可以通过简单的增强程序的健壮性的代码处理   ->(if)

    CheckedException 编译时异常|检查时异常,发生在程序编译时异常不处理,程序无法运行。

    常见的运行时异常:

                                     NullPointerException  空指针异常

                                    ClassCastException   类型转换异常

                                    NegativeArraySizeException   数组长度负数异常

                                    ArrayIndexOutOfBoundsException  数组索引越界

                                    ArithmeticException    数字异常

    运行时异常都会直接或简洁的继承自RuntimeException

   编译时异常:

            在编译时就出现的异常,就必须要解决

    异常处理方案:

            所有的异常都可以通过异常处理方案处理

                    编译时异常只能通过异常处理方案

                    运行时异常可以通过简单增强程序健壮性代码解决,也可以通过异常处理方案

            异常抛出:throws

                    抛出到方法上:谁调用谁处理

            异常的捕获: 捕获异常,提供异常的代码  alt + enter        alt CTRL+ t

            try{
            有可能出现的异常的代码;

            }catch(异常类型A e){
                    遇到当前类形的异常对应的异常处理代码

            }finally{
                   一定会执行的代码 

           }

            注意:

                    try中一旦遇到异常,try中的代码无法继续执行,直接判断能被哪一个catch捕获,

                            从上到下判断,如果所有的catch都不能捕获,程序直接结束,这个异常没有处理。

                    try中如果执行没有遇到异常,就不会判断catch的捕获

                    一个try后面可以跟1-n个catch

                    大范围类型的catch捕获放在后面,小返回的放前面

                    finally的代码无论try中是否出现异常 一定会执行会finally(做资源的关闭)

    自定义异常:

            自定义异常必须直接或者简洁的继承自Exception

            运行时异常必须直接或间接的继承RuntimeException

            throw制造异常

    对于编译型异常和运行时异常:关系编译型是异常是在编译时就会报错的,我们需要认为的处理或是抛给上一层处理(谁调用谁处理),但运行时异常,只有在运行时才又可能会出错,我们可以捕获异常或者是增强程序健壮性(让代码运行时不会出错或是给出解决方案)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值