Java异常处理

处理异常的两种方式:
    1.抛出去(交给JVM处理
        格式:在方法的声明后面加关键字
            方法声明(形参)throws 异常类名{
        }
    注意:
        a.可以同时抛多个异常,中间用逗号分割
        b.抛出了父类型的异常,子类型的异常就可以不同
        c.运行时期编译异常可以不处理
        d.编译时期异常必须处理
    
        
2.抓起来(自己处理)
        格式:
            try{
                可能出现问题的代码;
            }catch(异常类名 对象名){//捕获到异常就执行
                你解决这个异常的方案;
            }finally{
                最终的代码块,无论如何需要执行的代码块
            }
try{}catch{}finally{}的执行流程
    1.try中无异常
    try之前的代码->try中代码->final中的代码->try之后的代码
    
    2.  try中有异常   前提:catch捕获到了异常
    try之前的代码->tr->遇到异常立即终止->catch-->finally->try之后的代码
       
      3.  catch没有捕获到异常:
    try之前的代码->try->遇到异常立刻终止try中代码执行->检测catch是否捕获到-否->交给JVM处理->finally
            注意:
        1.catch父类异常也能抓到子异常-->多态
        2.一个catch中只能捕获一个个异常
        3.一个try..catch中可以写多个catch
        4.父类型异常的捕获必须写在异常捕获的后面
        5.finally代码块只要在JVM退出的情况下不会执行
        
异常对象的方法
        异常对象的功能:
            String etMessage():获取异常信息
            String toString():获取异常类型+异常信息
        *void printStackTrace():打印+异常类型+异常信息+异常产生的位置+红色字体+开新线程
            JVM处理异常时,异常对象调用的方法就是printStackTrace()
        
        
 在方法内定义异常并暴露
        一个方法的调用之所以有异常产生,原因是程序员在方法内使用throw关键字暴露并创建异常对象

格式:
    throw new 异常对象();

注意:
    1. 如果你在方法内暴露的是一个编译时期异常,方法本身也要处理此异常(一般情况下是抛出)
    2. 若方法内部就try..catch处理了异常,那么再次调用有异常的方法时就不需要处理异常
    3. 若方法内throw的是一个运行时期异常,那么异常可以不处理
    4. 若没有写throw,只是创建异常对象没有暴露,没暴露异常机制不会触发
        
        
        
自定义异常
        创建自定义异常类的步骤:
    第一步:创建一个类,类名: XxxxxException

    第二步:思考创建的异常是编译时期异常还是运行时期异常
        编译时期异常: 你就让创建的异常类继承Exception
        运行时期异常: 你就让创建的异常类继承RuntimeException

    第三步: 自动生成2个构造方法: 无参的和带有String message参数的构造方法
        
如何使用自定义异常:
    在方法内定义异常并暴露;
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值