ckecked Exception和Unchecked Exception异常
Throwable 是所有 Java 程序中错误处理的父类
Error JVM
Exception 程序
Checked Exception:继承java.lang.Exception
代表程序不能控制的无效外界情况。除了Error以及RuntimeException(运行时异常)及其子类,如:ClassNotFoundException, NamingException, ServletException, SQLException, IOException等。JAVA 编译器强制要求try catch处理throws声明抛出异常。
Unchecked Exception:继承java.lang.RuntimeException
Error Java运行系统中的内部错误以及资源耗尽的情形 (JVM 所侦测到的无法预期的错误,导致 JVM 无法继续执行)应用程序不应该抛出这种类型的对象(一般是由虚拟机抛出).假如出现这种错误, 除了尽力使程序安全退出外,在其他方面是无能为力的.所以,在进行程序设计时,应该更关注Exception体系.(OutOfMemoryError、ThreadDeath、stackoverflowerror)
RuntimeException 假如出现一定是程序员的错误。运行时异常,我们可以不处理。当出现这样的异常时,总是由虚拟机 接管。
RuntimeException出现运行时异常后,系统会把异常一直往上层抛,一直遇到处理代码。如果没有处理块,到最上层,如果是多线程就由 Thread.run()抛出 ,如果是单线程就被 main() 抛出 。抛出之后,如果是线程,这个线程也就退出了。如果是主程序抛出的异常,那么这整个程序也就退出了。运行时异常是 Exception 的子类,也有一般异常的特点,是可以被 Catch 块处理的。只不过往往我们不对他处理罢了。也就是说,你如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止。
如果不想终止,则必须扑捉所有的运行时异常,决不让这个处理线程退出。队列里面出现异常数据了,正常的处理应该是把异常数据舍弃,然后记录日志。不应该由于异常数据而影响下面对正常数据的处理。 在这个场景这样处理可能是一个比较好的应用,但并不代表在所有的场景你都应该如此。如果在其它场景,遇到了一些错误,如果退出程序比较好,这时你就可以不太理会运行时异常 ,或者是通过对异常的处理显式的控制程序退出。
异常处理的目标之一就是为了把程序从异常中恢复出来 。
RuntimeException:
1)IllegalArgumentException抛出的异常表明向方法传递了一个不合法或不正确的参数
2)NullPointerException当应用程序试图在需要对象的地方使用 null 时,抛出该异常
3)ArrayIndexOutOfBoundsException当使用的数组下标超出数组允许范围时,抛出该异常
4)ClassCastException当试图将对象强制转换为不是实例的子类时,抛出该异常
5)NumberFormatException当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。
6) ArithmeticException(整数除0时发生)
参考:http://blog.csdn.net/xiaoyu19910321/article/details/72937731
面试问题:
1.try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
http://www.cnblogs.com/hongten/p/hongten_java_finally.html
ckecked Exception和Unchecked Exception异常的更多相关文章
- Java的checked exception与unchecked exception
在Java中exception分为checked exception和unchecked异常,两者有什么区别呢? 从表象来看, checked异常就是需要在代码中try ... catch ...的异 ...
- java中的Checked Exception和Unchecked Exception的区别
Java 定义了两种异常: - Checked exception: 继承自 Exception 类是 checked exception.代码需要处理 API 抛出的 checked excepti ...
- checked exception和unchecked exception区别
http://blog.csdn.net/yuefengyuan/article/details/6204317 一. Java 中定义了两类异常: 1) Checked exception: 这类异 ...
- checked Exception和unchecked exception
checked Exception: io,sql等exception,程序无法控制的 unchecked exception: 包括Error与RuntimeException及其子类,如:OutO ...
- Java异常:选择Checked Exception还是Unchecked Exception?
http://blog.csdn.net/kingzone_2008/article/details/8535287 Java包含两种异常:checked异常和unchecked异常.C#只有unch ...
- Java 检查异常(checked exception)和未检查异常(unchecked exception)区别理解
所有异常类型都是 Throwable 类的子类,它包含Exception类和Error类,Exception又包括checked exception和unchecked exception. unch ...
- Checked Exception & Unchecked Exception
查Spring事务管理时看到一句话: Spring使用声明式事务处理,默认情况下,如果被注解的数据库操作方法中发生了unchecked异常,所有的数据库操作将rollback:如果发生的异常是chec ...
- java异常—检查异常(checked exception)和未检查异常(unchecked exception)
网易面试要我画异常的结构图,什么是检查异常,什么是非检查异常,我当时的表情是这样的,.我看过,忘了.没办法,继续看,写博客掌握. 先来看看异常的结构图,建议你结合JDK一起看. 可以看出异常的家族势力 ...
- 检查型异常(Checked Exception)与非检查型异常(Unchecked Exception)
这两个概念看了忘,碰着了又看,老是傻傻的分不清楚,今天把心得结合从网上搜的资料简单整理一下,希望帮自己明确区分开这两个概念,并牢牢的记住 1.检查型异常(Checked Exception) 个人理解 ...
随机推荐
- COGS 2104. [NOIP2015]神奇的幻方
★ 输入文件:2015magic.in 输出文件:2015magic.out 简单对比时间限制:1 s 内存限制:256 MB 模拟 一开始数组开小了.. 屠龙宝刀点击就送 #incl ...
- Integer的一个小问题
看面试题的时候看到这道题: public class Demo { public static void main(String[] args) { Integer i1 = 128; Integer ...
- MovieReview—Transformers.The.Last.Knight.(变形金刚5:最后的骑士.)
Gorgeous Effect & Bad Plot I can only say that the movie's effects are shocking. However, the ...
- superset docker 部署
公众号原文有更多效果图哦 一.使用自己的数据库 1. 拉取项目 // 创建目录用于存放项目 mkdir -p /mnt/superset cd /mnt/superset git clone http ...
- java的IO机制
BIO.NIO.AIO -----> Block-IO : inputStream 和OutputStream,Reader和Writer 1个连接,启动一个线程,这样导致很大的线程开销 NIO ...
- npm 安装插件失败
由于npm的很多安装包的下载源来自国外网站,所以比较缓慢甚至访问失败. 再此可以用淘宝的镜像文件来安装插件.方法其实很简单:
- Nginx超时配置
Nginx超时配置 1.client_header_timeout 语法client_header_timeout time 默认值60s 上下文http server 说明 指定等待client发送 ...
- 【数学 BSGS】bzoj2242: [SDOI2011]计算器
数论的板子集合…… Description 你被要求设计一个计算器完成以下三项任务: 1.给定y,z,p,计算Y^Z Mod P 的值: 2.给定y,z,p,计算满足xy≡ Z ( mod P )的最 ...
- spring boot yaml 自定义配置 映射到 java POJO
只需要一个注解就ok: @ConfigurationProperties("user.other") “user.other” 这个值匹配的是user下的other对象 yaml ...
- 模拟发送http请求的工具推荐
做网站开发时,经常需要发送请求来测试自己的代码是否OK,这时候模拟发送http请求的工具就起到了很大的作用.特别是需要在请求带header时就更加的有必要使用工具.下面推荐的工具有的是基于系统开发的程 ...