异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。

一、Error和Exception

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

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

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

二、Java两类主要的异常

Java提供了两类主要的异常:runtime exception和checked exception。

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

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

 三、Java运行异常

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

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

异常处理的目标之一就是为了把程序从异常中恢复出来。更多请访问上海尚学堂Java培训,获取Java300集和面试全集等学习资料和免费试学机会。

转载于:https://www.cnblogs.com/shsxt/p/10245254.html

Java软件工程师面试题:Java运行时异常与一般异常有什么不一样?相关推荐

  1. php转java学什么书,推荐给java软件工程师以及从java转向php程序猿的一本好书

    推荐给java程序员以及从java转向php程序猿的一本好书 首先 依据本人以往的惯例 本人不是暑托... 好就是好 而且不贵 ? 应该是本人认为的 国产原创书里面 能排上 前五的好书 ? ? spr ...

  2. java软件面试题_java软件工程师面试试题

    java软件工程师面试试题 更新时间:2019年01月25日13时15分 来源:java培训 浏览次数: 我们找工作的人都会面临一个难题,那就是面试,根据工作性质的不同,面试的要求也会不公,好点的工作 ...

  3. Java软件工程师 (职业简介)

    Java软件工程师 引言:信息时代的迅猛发展使得软件工程师十分抢手,而其中的java软件工程师更是备受青睐.那么,如何才能成为Java软件工程师?Java软件工程师又有怎样的发展前途?本文将为你一一解 ...

  4. J2EE高级软件工程师面试题集

      第一章:J2EE高级软件工程师面试题集 --JAVA基础部分 1.面向对象的特征有哪些方面1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不 ...

  5. 如何成为Java软件工程师

    首先,学习Java能用来做什么?Java目前有哪些就业方向?我们先看一下下图 上图给出了两个最重要的方向Java Web和Ardroid方向,其实我们经常说的Java软件工程师,我觉得应该叫Java ...

  6. java中级工程师面试题_java中级工程师面试题

    java中级工程师面试题 目前,我国对软件人才的需求已达20万,并且以每年20%左右的速度增长.在未来5年内,合格软件人才的需求将远大于供给.下面是关于java中级工程师面试题,希望大家认真阅读! 一 ...

  7. java工程师_南通JAVA软件工程师暑假强化实训学校

    如果想快速学习Java的话,建议参加Java培训.特别是自学时意志力不够强,惰性大的同学,很需要Java培训机构的助力.参加Java培训机构的好处就在于,当你想要入门Java时,可以知道如何打好学习基 ...

  8. java后端工程师面试题(笔试):2022-11-04 经历(一)

    java后端工程师面试题(笔试):2022-11-04: 面试题:总分100 1.关于盒子模型(5分) 1)盒子模型的种类有几种?分别是什么?(1分) 2种,分别是1.W3C标准盒子模型 2.IE盒子 ...

  9. Java软件开发面试题总结

    Java面试题总结 简介 一.Java基础模块 ① JDK.JRE和JVM的区别? ② ==和equals的区别是什么? ③ 两个对象的hashCode()相同,则equals()也一定为true,对 ...

  10. java软件工程师简介

    java软件工程(软件工程培训 )师职业简介 Java的应用可以说是无处不在,从桌面办公应用到网络数据库等应用,从PC到嵌入式移动平台,从Java小应用程序(Applet)到架构庞大的 J2EE企业级 ...

最新文章

  1. (转载)hadoop(13) 添加或删除datanode节点
  2. 《js高级程序设计》6.1.1-6.1.3——数据属性、访问器属性
  3. BIM机器人来袭、你害怕了吗
  4. Java黑皮书课后题第3章:3.2(游戏:将三个数相加)程序清单3-1中的程序产生2个整数并提示用户输入这两个整数的和。修改该程序使之能产生三个个位数整数,提示用户输入这三个整数的和
  5. vim编辑器的设置文件
  6. 使用Drools跟踪输出
  7. 梯度下降法、最速下降法
  8. 如果你需要在 XHTML 中声明 DOCTYPE,必须使用到jsp:text动作元素
  9. 99定时器设计c语言,51单片机写的曝光定时器C语言程序
  10. Jmeter性能测试流程
  11. 全球地区选择,支持中英文切换。国家-省市-城市-地区
  12. 使用机器学习对美股涨跌预测系统的探究
  13. win7与internet时间同步出错_电脑时间同步出错,教您电脑时间同步出错怎么办
  14. Go学习之编码实现区块链 - 【blockchain】
  15. 让word中插入的图片不失真,图像保持原清晰度
  16. SAP 散装物料作用及设置
  17. 案例部署——GlusterFS分布式文件系统群集
  18. 供电企业的福音,远程抄表系统无线解决方案,让工程师告别奔波
  19. GD32上FAL Flash分区驱动移植及Easyflash与FlashDB移植说明
  20. 【春招尾声】程序员の井沿理论

热门文章

  1. 利用Onionshare 共享匿名文件
  2. mysql----------mysql5.7如何配置主从数据库
  3. 一次linux root密码错修改历程
  4. 粒子群算法(1)----粒子群算法简单介绍
  5. dyve/django-bootstrap-toolkit
  6. 手把手教您安全配置Apache服务器
  7. 数据库访问的性能问题与瓶颈问题
  8. Linux 桌面版为什么打不过 Window?Linus 现身说法!
  9. 滴滴这名员工的N+1飞了,离职带走公司文档
  10. 阿里十大最受开发者欢迎的工具!