运行时异常与一般异常有何异同?(转)

文章分类:IT生活

Throwable是所有Java程序中错误处理的父类,有两种资类:Error和Exception。

Error:表示由JVM所侦测到的无法预期的错误,由于这是属于JVM层次的严重错误,导致JVM无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息。

Exception:表示可恢复的例外,这是可捕捉到的。

Java提供了两类主要的异常:runtime exception和checked exception。checked 异常也就是我们经常遇到的IO异常,以及SQL异常都是这种异常。对于这种异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch。所以,面对这种异常不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常。

但是另外一种异常:runtime exception,也称运行时异常,我们可以不处理。当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过NullPointerException异常,它就是运行时异常,并且这种异常还是最常见的异常之一。

出现运行时异常后,系统会把异常一直往上层抛,一直遇到处理代码。如果没有处理块,到最上层,如果是多线程就由Thread.run()抛出,如果是单线程就被main()抛出。抛出之后,如果是线程,这个线程也就退出了。如果是主程序抛出的异常,那么这整个程序也就退出了。运行时异常是Exception的子类,也有一般异常的特点,是可以被Catch块处理的。只不过往往我们不对他处理罢了。也就是说,你如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止。

如果不想终止,则必须扑捉所有的运行时异常,决不让这个处理线程退出。队列里面出现异常数据了,正常的处理应该是把异常数据舍弃,然后记录日志。不应该由于异常数据而影响下面对正常数据的处理。在这个场景这样处理可能是一个比较好的应用,但并不代表在所有的场景你都应该如此。如果在其它场景,遇到了一些错误,如果退出程序比较好,这时你就可以不太理会运行时异常,或者是通过对异常的处理显式的控制程序退出。

异常处理的目标之一就是为了把程序从异常中恢复出来。

Java 中的异常体系结构图:

  • 大小: 22.6 KB

运行时异常与一般异常有何异同?(转)相关推荐

  1. 什么是引发?Java运行时系统引发的异常如何处理?

    到目前为止,你只是获取了被Java运行时系统引发的异常.然而,程序可以用throw语句引发明确的异常.Throw语句的通常形式如下: throw ThrowableInstance; 这里,Throw ...

  2. C++-运行时类型信息,异常(day11)

    一.运行时类型信息 1.typeid运算符 头文件:#include<typeinfo> C++的标准头文件,都对应相应的类 //sizeof(类型/变量/表达式),返回内存大小 type ...

  3. IDEA 运行时出现 too long 异常

    修改项目下 .idea\workspace.xml,找到标签 <component name="PropertiesComponent"> , 在标签里加一行  < ...

  4. finale域在修改时是安全的,虽然运行时修改不抛异常但是实际上没修改任何东西...

    转载于:https://www.cnblogs.com/a6948076/p/8274084.html

  5. java运行时_java编译时与运行时概念与实例详解

    Java编译时与运行时很重要的概念,但是一直没有明晰,这次专门博客写明白概念. 基础概念 编译时 编译时顾名思义就是正在编译的时候.那啥叫编译呢?就是编译器帮你把源代码翻译成机器能识别的代码.(当然只 ...

  6. java编译不报错但运行啥都没_java编译时与运行时概念与实例详解

    java编译时与运行时概念与实例详解 发布于 2020-7-29| 复制链接 本篇文章通过实例对 java程序编译时与运行时进行了详解,需要的朋友可以参考下 Java编译时与运行时很重要的概念,但是一 ...

  7. 什么是异常?如何处理异常?

    到底神马是异常?如何处理异常? 异常的概念 异常的体系结构 Java 异常的处理机制 异常处理的基本语法 异常链 自定义异常 总结 异常的概念 异常是程序中的一些错误,但并不是所有的错误都是异常,并且 ...

  8. java异常判断_Java异常类

    异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程.Java通 过API中Throwable类的众多子类描述各种不同的异常. ...

  9. 运行时异常 检查时异常

    Throwable是Java程序中所有异常对象的根基类,而Throwable是从Object类直接继承来的, Throwable可分为error(错误)和 Exception(异常).error表示的 ...

最新文章

  1. mysql如何根据业务分表设计_mysql分表分库的应用场景和设计方式
  2. 励研(LY) CRC16算法
  3. Android 屏幕自动旋转-Sensor属性
  4. sql(join on 和where的执行顺序)
  5. 虚拟机网络无法连接问题解决(超简单)
  6. 连续七天熬夜3D建模师终于出手,让老板增加薪资待遇,3D建模初学者的4个技巧
  7. mysql 做回归模型_技术分享 | 我对 MySQL 隔离级别的剖析
  8. 无法读取方案文档 ‘http://www.springframework.org/schema/beans/spring-beans-4.1.xsd‘问题解决
  9. 物理数据库设计 - 读书笔记
  10. 解决@media screen (自适应)IE浏览器不兼容问题
  11. 计算机Word2010在线做题,Word2010题库(答案)试题.doc
  12. Unity3D asset bundle 格式简析
  13. apdu 移动sim_SIM之APDU指令格式 | 学步园
  14. C#打造一个开源webgis(四)地图客户端(上)
  15. Markdown文档常用字体及颜色设置
  16. ESP8266-Arduino编程实例-MLX90614红外测温传感器驱动
  17. 主要计算机硬件部件,计算机硬件各部件的主要功能
  18. Kotlin For循环详解
  19. ElasticSearch安装、IK、映射、索引管理、搜索管理和集群管理
  20. RSA算法和DH算法的区别

热门文章

  1. php 导出excel 特殊字符,export 导出的excel sheet名字包含特殊字符
  2. tablednd保存 php,jqgrid中使用tableDnd插件,jqgridtablednd插件
  3. rgb立方体用html语言,解读Unity中的CG编写Shader系列一
  4. TortoiseSVN在Windows下的使用
  5. carbon 一天的开始 结束_情话文案:朋友圈背景图丨2020国庆最后一天朋友圈的说说文案 修炼七天的你,是否准备就绪?...
  6. null未定义_PHP的isset()、is_null、empty()使用总结
  7. 关闭eslint检查2020_2020 vscode配置eslint保存后自动fix
  8. serialport接收串口数据_C#串口操作类,包括串口读写操作
  9. oracle跨库 导库,Oracle 用dblink 跨库导数据
  10. php 求数组组合数,php实现求数组全排列,元素所有组合的方法