JAVA异常处理机制问题
由于SCJP备考,复习一些基础知识,发现不少有意思的问题。 
 如java对异常的处理机制,如果没有特别的留意,很可能犯错。 
 如以下代码, 
             void   test2(){ 
                         throw   new   ArithmeticException(); 
             } 
 编译通过,并也能够顺利执行。这与书上说的java   异常处理机制不同,书上说“方法体内抛出的任何异常该方法都要在throws列出”。但是在JDK   API的帮助文档中又这么说:“
RuntimeException   是那些可能在   Java   虚拟机正常运行期间抛出的异常的超类。   可能在执行方法期间抛出但未被捕获的   RuntimeException   的任何子类都无需在   throws   子句中进行声明。”;ArithmeticException是RuntimeException的子类,按照API文档来讲,上述代码完全无问题。所以提出第一个问题:为什么RuntimeException及其子类有如此特权?
------解决方案--------------------所以提出第一个问题:为什么RuntimeException及其子类有如此特权?   
 ========= 
 讨论这个跟讨论为什么抛出已检查异常一定要在方法中声明一样 
 有意义?