Java 异常处理(七)记录一个Java小白的学习路程

目录

异常

Java 程序中的异常

异常处理的方式

Java异常处理图

异常是一起处理好还是分开处理好?

 throw和throws的区别?

 垃圾回收


异常

        异常就是不同寻常的事情

                异常不总是错误,一切不同寻常的事情都是异常

Java 程序中的异常

       

         Throwable(不寻常)

                1.Error

                        错误(不可控)

                2.Exception

                         异常(可控)

                                1.编译时异常

                                        RuntimeException

                                2.运行时异常

                                        SQLException
                                        ClassNotFoundException
                                        ArithmeticException
                                        ...

异常处理的方式

        直接处理:

                try代码块:包含的是可能引起一个或者多个异常的代码

                       遇到第一个异常进入catch块

                catch代码块:包含着计划用于处理一个特定类型异常的代码

                        可以拥有若干个try-catch块,catch运行完后try-catch块结束

                fianlly代码块:在方法结束之前必须执行代码块

                        无论是否异常,一定执行
                        finally代码块中的代码只写一次

        异常处理方案:

                try...catch、try...catch...finally、try...finally
                    try{
                        可能会发生的异常
                    }catch(异常类型 异常名(变量)){
                        针对异常进行处理的代码
                    }catch(异常类型 异常名(变量)){
                        针对异常进行处理的代码
                    }...
                    [finally{
                        释放资源代码;
                    }]

                注意:

                        1.catch 不能独立于 try 存在。

                        2.catch里面不能没有内容 

                        3.在 try/catch 后面添加 finally 块并非强制性要求的。

                        4.try 代码后不能既没 catch 块也没 finally 块。

                        5.try里面越少越好。

                        6.try, catch, finally 块之间不能添加任何代码。

                        7.finally里面的代码最终一定会执行(除了JVM退出)

                        8.如果程序可能存在多个异常,需要多个catch进行捕获。

                        9.异常如果是同级关系,catch谁前谁后没有关系

                如果异常之间存在上下级关系,上级需要放在后面

        向上抛出:

                如果你需要把自己捕获的异常传递给调用的程序,可以使用throw语句在catch块中把它
        再次抛出,此时该方法的声明部分添加throws异常类型

                如果异常为运行时异常,则必须添加throws异常类型

Java异常处理图

异常是一起处理好还是分开处理好?

         根据实际的开发要求是否严格来决定。在实际的项目开发项目工作中,所有的异常是统一使用Exception处理还是分开处理,完全根据开发者的项目开发标准来决定。如果项目开发环境严谨,基本上要求针对每一种异常分别进行处理,并且要详细记录下异常产生的时间以及产生的位置,这样可以方便程序维护人员进行代码的维护。再次注意:处理多个异常时,捕获范围小的异常要放在捕获范围大的异常之前处理。

 throw和throws的区别?

  • throw:指的是在方法中人为抛出一个异常对象(这个异常对象可能是自己实例化或者抛出已存在的);
  • throws:在方法的声明上使用,表示此方法在调用时必须处理异常。

 垃圾回收

        垃圾收集时可将分配给对象但不再使用的内存回收或释放的过程

        Java将自动释放不再使用的内存

        如果一个对象没有指向它的医用或将其赋值为null,则此对象将适于垃圾收集

        finalize方法:

                如果存在finalize()方法,它将在垃圾收集前被执行一次,而且每个对象仅执行一次,用于执行最终消亡之前的一些操作

         

                                        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值