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) 个人理解 ...
随机推荐
- [VC]关于ocx控件的自己编写的dll问题
要是无法删除c:windows/cownloadprogrames下的文件时可以关掉所有的浏览器,然后在internate----程序---管理 加载项里 先把那个加载项 更新一下,或者禁用一下,或者 ...
- bzoj3209:3209: 花神的数论题
觉得还是数位dp的那种解题形式但是没有认真的想,一下子就看题解.其实还是设置状态转移.一定要多思考啊f[i][j]=f[i-1][j]+g[i-1][j] g[i][j]=f[i-1][j-1]+g[ ...
- C# 控制台应用程序输出颜色字体[更正版]
首先感谢院子里的“yanxinchen”,之前的方法是通过c#调用系统api实现的,相比之下我的有点画蛇添足了,哈哈. 最佳解决方案的代码: static void Main(string[] arg ...
- ubuntu下安装eclipse<转>
转载自http://my.oschina.net/u/1407116/blog/227084 http://my.oschina.net/u/1407116/blog/227087 一 JD ...
- smooth_L1_loss_layer.cu解读 caffe源码初认识
.cpp是cpu上运行的代码,.cu是gpu上运行的代码. 这是smooth_L1_loss_layer.cu的前向传播部分 #include "caffe/fast_rcnn_layers ...
- exportfs: /mnt/demo requires fsid= for NFS export
解决方法:/mnt/demo 10.0.1.57(fsid=0,rw,async) //加入fsid=0参数就可.
- SQL 隔离级别
在SQL标准中定义了四种隔离级别,每一种级别都规定了一个事务中所做的修改,哪些在事务内和事务间是可见的,哪些是不可见的.较低级别的隔离通常可以执行更高的并发,系统的开销也更低. 简单的介绍四种隔离级别 ...
- mysql中影响数据库性能的因素讲解
mysql中影响数据库性能的因素讲解 在本篇文章中我们给大家讲述了mysql中影响性能的因素以及相关知识点内容,有兴趣的朋友参考下 关于数据库性能的故事 面试时多多少少会讲到数据库上的事情,“你对数据 ...
- IOS中将颜色转换为image
- (UIImage *)createImageWithColor:(UIColor *)color { CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f ...
- Unity基础-编辑器
编辑器 Special Folders Hidden Folder(start with .) Standard Assets:第一批加载的文件 Editor:只在编辑下才能使用, Plugins R ...