Java异常-一般异常和运行时异常的区别
Java提供了两类主要的异常:runtime exception和checked exception。checked
异常也就是我们经常遇到的IO异常,以及SQL异常都是这种异常。对于这种异常,
JAVA编译器强制要求我们必需对出现的这些异常进行catch。所以,面对这种异常
不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常。
总的来说一句话,runtime exception是可以不捕获,由程序自动往外抛;checked exception则必须捕获(try/catch)的,必须当下处理;
但是另外一种异常:runtime exception,也称运行时异常,我们可以不处理
。当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过
NullPointerException异常,它就是运行时异常,并且这种异常还是最常见的异
常之一。
出现运行时异常后,系统会把异常一直往上层抛,一直遇到处理代码。如果
没有处理块,到最上层,如果是多线程就由Thread.run()抛出,如果是单线程就
被main()抛出。抛出之后,如果是线程,这个线程也就退出了。如果是主程序抛
出的异常,那么这整个程序也就退出了。运行时异常是Exception的子类,也有一
般异常的特点,是可以被Catch块处理的。只不过往往我们不对他处理罢了。也就
是说,你如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程
中止,要么是主程序终止。
如果不想终止,则必须扑捉所有的运行时异常,决不让这个处理线程退出。
队列里面出现异常数据了,正常的处理应该是把异常数据舍弃,然后记录日志。
不应该由于异常数据而影响下面对正常数据的处理。在这个场景这样处理可能是
一个比较好的应用,但并不代表在所有的场景你都应该如此。如果在其它场景,
遇到了一些错误,如果退出程序比较好,这时你就可以不太理会运行时异常,或
者是通过对异常的处理显式的控制程序退出。
Java异常-一般异常和运行时异常的区别的更多相关文章
- [转] Java 的泛型擦除和运行时泛型信息获取
原文链接 https://my.oschina.net/lifany/blog/875769 前言 现在很多程序员都会在简历中写上精通 Java.但究竟怎样才算是精通 Java 呢?我觉得不仅要熟练掌 ...
- Java编译时常量和运行时常量
Java编译时常量和运行时常量 编译期常量指的就是程序在编译时就能确定这个常量的具体值. 非编译期常量就是程序在运行时才能确定常量的值,因此也称为运行时常量. 在Java中,编译期常量指的是用fina ...
- Vue.js 2.0 独立构建和运行时构建的区别
Vue.js 2.0 独立构建和运行时构建的区别 在使用 Vue.js 2.0 时,有独立构建(standalone)和运行时构建(runtime-only)两种版本可供选择.而在 Vue.js 1. ...
- java-异常-编译时检测异常和运行时异常区别(throws和throw区别)
1 package p1.exception; 2 /* 3 * 对于角标是整数不存在,可以用角标越界表示, 4 * 对于负数为角标的情况,准备用负数角标异常来表示. 5 * 6 * 负数角标这种异常 ...
- Java编译时多态和运行时多态
来源:https://blog.csdn.net/wendizhou/article/details/73733061 编译时多态:主要是方法的重载,通过参数列表的不同来区分不同的方法. 运行时多态: ...
- JAVA基础知识总结11(异常)
异常: 就是不正常.程序在运行时出现的不正常情况.其实就是程序中出现的问题.这个问题按照面向对象思想进行描述,并封装成了对象.因为问题的产生有产生的原因.有问题的名称.有问题的描述等多个属性信息存在. ...
- java基础知识(9)---异常
异 常: 异常:就是不正常.程序在运行时出现的不正常情况.其实就是程序中出现的问题.这个问题按照面向对象思想进行描述,并封装成了对象.因为问题的产生有产生的原因.有问题的名称.有问题的描述等多个属性信 ...
- Java检查型异常和非检查型异常
1.代码 public class ExcepTest { /** * @param args */ public static void main(String[] args) { System.e ...
- [core java学习笔记][第十一章异常断言日志调试]
第11章 异常,断言,日志,调试 处理错误 捕获异常 使用异常机制的技巧 使用断言 日志 测试技巧 GUI程序排错技巧 使用调试器 11.1 处理错误 11.1.1异常分类 都继承自Throwable ...
随机推荐
- Debian下安装deb格式安装包
dpkg -i 软件包名称 就好啦 下面是相应链接: http://blog.csdn.net/lhf_tiger/article/details/7493400
- 如何利用python模仿浏览器进行网页爬取?
http://wwwsearch.sourceforge.net/mechanize/ http://www.ibm.com/developerworks/cn/linux/l-python-mech ...
- JavaWeb学习----http协议
一.什么是HTTP协议: 1.概念: 客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通迅的格式(规定客户端和服务器如何 ...
- intellij IDEA15 设置背景颜色
File--> Settings 2. Appearance & Behavior --> Appearance 设置边框背景颜色 3. Editor --> Colors ...
- ArcGIS Engine 中 线加箭头
; ICartographicLineSymbol pCartoLineSymbol = ); IArrowMarkerSymbol p ...
- linux运维中的命令梳理(一)
在linux日常运维中,我们平时会用到很多常规的操作命令. 下面对常用命令进行梳理: 命令行日常系快捷键(不分大小写)CTRL + A 移动光标到行首CTRL + E 移动光标到行末CTRL + U ...
- ASP.NET MVC+WCF+NHibernate+Autofac 框架组合(一)
学习了Spring.NET+NHibernate的框架,觉得Spring.NET框架不够轻量,配置来配置去的比较头疼,所以把Spring.NET换成了Autofac框架,同时加入WCF框架整了一个组合 ...
- C#属性: 利用set实现递归
直接帖代码: public class Bird { int xdata; /// <summary> /// 属性的简洁写法,等同于下面的xData方式 /// </summary ...
- 如何配置CentOS或者RedHat5.X、6.X、7.X的网络yum源
第一步:找到一个可靠的yum源 中科大帮助:https://lug.ustc.edu.cn/wiki/mirrors/help/centos源:http://mirrors.ustc.edu.cn/c ...
- 可以这样去理解group by和聚合函数(转)
http://www.cnblogs.com/wuguanglei/p/4229938.html 写在前面的话:用了好久group by,今天早上一觉醒来,突然感觉group by好陌生,总有个筋别不 ...