A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陶智第 中级黑马   /  2013-9-4 21:43  /  1110 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 陶智第 于 2013-9-5 15:09 编辑

RuntimeException与Exception其他的子类有什么特别之处,为什么RuntimeException 的任何子类都无需在 throws 子句中进行声明?

评分

参与人数 1技术分 +1 收起 理由
潘才新 + 1 淡定

查看全部评分

3 个回复

倒序浏览
帮新人顶一下{:soso__17787108314864036286_6:}
回复 使用道具 举报
亲,如问题已解决请将分类的“未解决”改为“已解决”。
以后的问题贴也要及时更改分类哦~
回复 使用道具 举报
先来谈谈异常,Java中以供提供了try、catch、finally、throw和throws5个关键字来处理异常,其中try-catch;-finally需要配套使用,它们的作用是捕获和处理异常。在Java的lang包里有一个Throwable类,它是所有一次的父类或者间接父类,每个异常都是Throwable的子类,其中有两个直接子类:Error和Exception,Error类及其子类使用来处理系统内部程序集程序运行环境的异常,一般与硬件无关,有系统之家处理,不需要程序员在程序中处理。
Exception类是程序能够捕获到的异常情况,它又可以分为两大类:运行时异常(为RuntimeException)和检查型异常(也称非运行时异常),运行时异常(RuntimeException)是一种设计或者实现问题上出现的错误,大多数是由程序设计不当而引发的,但是这种错误要在运行期间才会发生和被发现。
运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见的运行,[color=Red]Java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。
[code]class  CharClass
{
        public static void main(String[] args)
        {
                SubThread s1 = new SubThread();
                SubThread s2 = new SubThread();
                SubThread s3 = new SubThread();
                s1.start();
                s2.start();
                s3.start();
        }
}
class SubThread extends Thread
{
        public void run(){
                sleep(100);
                System.out.println(Thread.currentThread().getName()+"!");
        }
}//这个程序看上去并没有什么问题,但是编译却不能通过,编译器会报如下错误:InterruptedException,
说明RuntimeException是属于检查型异常,你提前是没有办法知道是否会报错的,没办法去声明的,你总不能无缘无故就来个声明,告诉编译器会报错,那是Exception的风格。

评分

参与人数 1技术分 +2 收起 理由
潘才新 + 2 很给力!讲得不错

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马