异常的处理两种方式

异常处理
    逻辑错误和语法错误不是异常、
    error:java虚拟机无法解决的问题
            内部错误 资源耗尽 内存溢出   (比较严重)  一般不编写针对性的代码进行处理
            解决办法:
                终止程序
                错误处理
                
    expection:
        空指针
        读取不存在的文件
        网络链接中断
        数组越界
            有的错误在编译试捕获  但是在运行时才会出现
            因此分为  编译时异常  和   运行时异常
             编译时异常:io异常  文件未找到异常   类未找到异常
             运行时异常:空指针异常 数组越界异常 数据格式异常 数据不匹配异常 除0
             
             
             
             
        异常处理机制
            try catch
                处理异常
                抛:
                    一旦异常就会生成一个对应异常类的对象
                    并将对象抛出
                    一旦抛出  后面的代码就不再执行
                    
                
                
                抓:
                    抓住这个对象
                    异常处理的方式
                    1、try catch final
                    2、throw
                    
                    try catch final  的使用
                        try{
                        }
                        catch(异常类型1 变量1)
                        {
                        //异常处理方式1
                        }
                        catch(异常类型2 变量2)
                        {
                        //异常处理方式2
                        }
                        catch(异常类型3 变量3)
                        {
                        //异常处理方式3
                        }    
                        finally
                        {
                        //一定会执行的代码
                        }
                        如果没有子父类关系  顺序无所谓  否则  子类必须在父类上边
                        常用的异常处理方式 
                            String getmessage  
                            printstatcktrance
                            在try中声明的变量 在除了try结构以后  就不能再被调用
                            
                
                        finally
                            是可选的  
                            可以加return  try中有return  catch中也有等等情况
                            的时候  也会继续执行finally  先执行final然后执行return
                        找返回值  先返回finally中的返回值  然后再向上找
                        、
                        注: 像数据库链接 输入出入流  网络变成中的socket等资源 jvm是不能回收的 
                        我们需要自己动手进行释放   放到finally中
                        
                        在开发中 
                            其实本身就是编译时异常  我们把他通过try 变成了运行时异常
                            运行时异常因此就不需要进行处理了
                        
            throws
                往上报
                    throws +异常类型
                    产生异常 抛给调用他的地方 直到有方法进行trycatch
                    异常后代码将不会执行!
                    
    二者之间进行如何选择
        1、throws子类重写的方法规则
            throws子类方法重写的异常类型一定小于等于父类的异常类型
            假如子类中需要抛出异常  只能使用trycatch
            
        2、当出现一系列有一定递进关系时的代码时  不要一个一个处理  当他们放到一起的时候  进行整体的处理
        
            都先进行throws  整体进行trycatch
        3、throw 进行生成异常  throws进行抛出异常

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值