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

参考:https://blog.csdn.net/lan12334321234/article/details/70049446

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

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

我们常见的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。 

 

posted @ 2018-07-09 10:27  阴翳公子  阅读(313)  评论(0编辑  收藏  举报