JavaSE基础复习三:异常机制知识点

  ------- android培训java培训、期待与您交流! ----------


为了提高程序的容错性、健壮性,引入异常机制,当程序发生异常时,自动生成异常对象通知程序,成而实现正常代码和错误处理代码的分离,提高可读性。

Java中异常的关键字:
try    catch    finally    throw    throws


异常之间的关系:
Throwable
    |---Error  错误,与JVM相关的问题,无需catch捕获和throws声明,不能被处理。
    |---Exception  异常
        |---RuntimeException
        |---checked Exception


RuntimeException:运行时异常
    运行时异常指示调用方无法处理或恢复的程序错误。
    取决于运行状态,编译时不被检测,可以由系统自动抛出,自动捕获,它会直接终止程序。
    不需要try,catch和throws exception语句,
    运行时异常也可以显示捕获。
    如果捕获,程序代码的错误(bug)会被掩盖在运行当中无法被察觉。
    常见有除零异常、空指针异常、数组越界异常等。
    
checked Exception:编译时被检测异常
    需要调用方显示捕获处理或者显示声明抛出异常。
        
catch:
异常捕获:先捕获小异常,再捕获大异常。
Java7的多异常捕获:
    catch(Exception1|Exception2 e) {...   }  各异常类型之间用|分开,e默认被final修饰.
    
异常的几种处理方式:
    1、通过catch处理异常,并进行修复,然后继续执行程序;
    2、catch后重新抛出新异常,交给上层调用者;
    3、不捕捉异常。直接使用throws声明抛出。
        
捕获的异常赋给catch后的形参,该异常对象的方法有:
    getMessage():返回异常的描述字符串
    printStackTrace():错误栈信息输出到标准输出
    printStackTrace(PrintStream ps):错误栈信息输出到指定输出流
    getStackTrace():返回栈信息,数组


finally代码块:
    用于关闭资源。
    当遇到return或者throw 语句时,方法返回前会先执行finally中的代码;
    如果catch代码块中有System.exit(1);语句,则finally代码块将不被执行。
    如果需要定义必须执行的代码,可以使用try。。。finally。。语句,将代码放在finally块中。
    
Java7 自动关闭资源的try语句
    try(定义资源或者初始化资源){。。。。} 
    这些资源必须实现Closeable或者AutoCloseable接口;
    隐式包含用于关闭资源的finally块,可以不需要catch块和finally块。
    
throw语句
    单独存在时,后面不可以跟语句,因为执行不到。    
    自定义异常:需要继承Exception或者RuntimeException

throws抛出异常
    子类方法抛出的异常应该是父类方法抛出的异常的子类或者相同,子类方法不能比父类方法抛出更多的异常。    

    举例:如在多态时,早期的程序不能处理后来出现的新异常。

------- android培训java培训、期待与您交流! ----------

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值