日期:2014-05-20  浏览次数:20930 次

unchecked exception和checked exception
一直没搞明白为何把异常分成unchecked exception和checked exception两类。

刚刚反复看api,我有这样一种感觉,不知想的对不对,还望大家指教啊:

RuntimeException和他的子类貌似都是因为程序设计上有错误导致的,比如:

IllegalMonitorStateException  这是同步机制使用的不正确
IndexOutOfBoundsException  数组用的不对
NullPointerException 没初始化

等等还有很多。

=====================================================

我又看了看checked exception,他们都是java程序本身控制不了的,但是又不能不应对的异常,比如:

SQLException api解释:An exception that provides information on a database access error or other errors 数据库造成的

FileNotFoundException  文件系统造成的

SocketException  Signals that an error occurred while attempting to connect a socket to a remote address and port. Typically, the connection was refused remotely 这是socket服务器的原因。

大家拍砖,指条明路吧,大侠们 谢谢




------解决方案--------------------
Java中的异常分为受检查的异常和不受检查的异常。
(1)受检查的异常:这种在编译时被强制检查的异常称为"受检查的异常"。即在方法的声明中声明的异常。
(2)不受检查的异常:在方法的声明中没有声明,但在方法的运行过程中发生的各种异常被称为"不被检查的异常"。这种异常是错误,会被自动捕获。
一些规模较小的程序中,受检查的异常能够提高开发效率,但随着项目规模的扩大,过多的受检
查的异常将变的难以管理,其带来的好处也将消失殆尽。