java 运行时异常与非运行时异常理解


所谓的异常就是阻止当前程序或方法继续执行的问题。

java异常分为两种:运行时异常(RuntimeException)和非运行时异常(CheckedException)也叫检查式异常。

1.运行时异常是不需要捕获的,程序员可以不去处理,当异常出现时,虚拟机会处理。常见的运行时异常有空指针异常。

我们常见的5中运行时异常:

     
    ClassCastException(类转换异常)
    IndexOutOfBoundsException(数组越界)
    NullPointerException(空指针)
    ArrayStoreException(数据存储异常,操作数组时类型不一致)
    还有IO操作的BufferOverflowException异常


具体可以参见java的API:http://docs.oracle.com/javase/7/docs/api/

2.非运行时异常就必须得捕获了,否则编译不过去,java编译器要求程序员必须对这种异常进行catch,Java认为Checked异常都是可以被处理(修复)的异常,所以Java程序必须显式处理Checked异常。

常见的非运行异常有io异常和sql异常。

     
    IOException、FileNotFoundExcetion 和SQLException


finally是异常处理工作的一部分,表示总是执行。一般finally写的代码语句就是流的关闭。也就是做了一项清理,工作清理工作对于我们来说是必不可少的,因为如果一些消耗资源的操作,比如IO,JDBC。如果我们用完以后没有及时正确的关闭,那后果会很严重,这意味着内存泄露。(有人说过,对于资源的及时正确的清理是程序员的基本素质之一)

另外不得不说异常处理中的throws和throw的区别了。

1、throws出现在方法的声明中,表示该方法可能会抛出的异常,允许throws后面跟着多个异常类型
2、throw出现在方法体中,用于抛出异常。当方法在执行过程中遇到异常情况时,将异常信息封装为异常对象,然后throw。
---------------------
作者:艾伦蓝
来源:CSDN
原文:https://blog.csdn.net/lan12334321234/article/details/70049446/
版权声明:本文为博主原创文章,转载请附上博文链接!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM