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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 曾_强 中级黑马   /  2012-5-4 21:16  /  1907 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 jiyixuan 于 2012-5-4 21:22 编辑

Java异常有编译时异常和运行时异常,无意中看到受控异常一说。不是很明白?
请分别说明什么是运行时异常(或编译时)和什么是受控异常?分别有什么区别和特点?什么时候使用或者说使用上有什么区别喃?

另外,try.catch能不能将所有的异常都抓取到?若是能,那为什么编译时抓取异常,反而运行时出现异常。

求指教。小弟先谢过。

4 个回复

正序浏览
Throwable 是所有 Java 程序中错误处理的父类 ,有两种: Error 和 Exception 。Error :表示由 JVM 所侦测到的无法预期的错误,由于这是属于 JVM 层次的严重错误 ,导致 JVM 无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息。
Exception :表示可恢复的例外,这是可捕捉到的。runtime exception 和 checked exception 。 checked 异常也就是我们经常遇到的 IO 异常,以及 SQL 异常都是这种异常。 对于这种异常, JAVA 编译器强制要求我们必需对出现的这些异常进行 catch 。所以面对这种异常不管我们是否愿意,只能自己去写一大堆 catch 块去处理可能的异常。
runtime exception ,也称运行时异常,我们可以不处理。当出现这样的异常时,总是由虚拟机负责。比如:我们从来没有人去处理过 NullPointerException 异常,它就是运行时异常,并且这种异常还是最常见的异常之一
回复 使用道具 举报
Throwable 是所有 Java 程序中错误处理的父类 ,有两种: Error 和 Exception 。Error :表示由 JVM 所侦测到的无法预期的错误,由于这是属于 JVM 层次的严重错误 ,导致 JVM 无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息。
Exception :表示可恢复的例外,这是可捕捉到的。runtime exception 和 checked exception 。 checked 异常也就是我们经常遇到的 IO 异常,以及 SQL 异常都是这种异常。 对于这种异常, JAVA 编译器强制要求我们必需对出现的这些异常进行 catch 。所以面对这种异常不管我们是否愿意,只能自己去写一大堆 catch 块去处理可能的异常。
runtime exception ,也称运行时异常,我们可以不处理。当出现这样的异常时,总是由虚拟机负责。比如:我们从来没有人去处理过 NullPointerException 异常,它就是运行时异常,并且这种异常还是最常见的异常之一

评分

参与人数 1技术分 +1 收起 理由
职业规划-刘倩老师 + 1 你在论坛很活跃,继续加油!

查看全部评分

回复 使用道具 举报
所谓的受控异常其实就是checked Exception,这些异常在程序中必须使用try{}catch{}捕获到,或者使用throws抛出去,不然程序编译的时候就没法通过,像IOException等,而我们说的运行时异常编译器是不检测的,它是因为程序员的原因引起的,比如说我们出现最多的越界异常等等,而且这些异常在try..catch..是没有办法恢复的
回复 使用道具 举报
回答起来难度很大,baidu上说《Thinking in Java》可以得到答案。帮忙顶一下,看看有没有达人来解读下。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马