一、异常的介绍

Throwable 是 Java 中所有错误和异常的超类。Java 虚拟机仅抛出属于此类(或其子类之一)的实例对象,或者是 throw 语句也可以抛出该对象。同样,catch 子句中的参数类型也只能是此类(或其子类之一)。处于编译时检查异常为目的,Throwable 和其部分子类(除开 RuntimeException、Error 及它们其子类)都被视为检查的异常(checked exceptions),又称为运行时的异常,剩下的都是未检查的异常(unchecked exceptions)。

一个 throwable 包含它创建时线程执行堆栈的快照。它还可以包含一个消息字符串,该字符串提供有关该错误的更多信息。随着时间的流逝,一个throwable可以抑制其他 throwables 的传播。最后,throwable 还可以包含一个原因:另一个导致该 throwable 构造的 throwable。此因果信息的记录称为链接异常机制,因为原因本身可以具有原因,依此类推,导致异常的“链”,每个异常都是由另一个原因引起的。

二、Java异常结构层次图

图中仅列出一些比较常见的异常,还有绝大部分没有展现出来,可见 Java异常家族之大。还有就是 Error 那一块的东西对于我来说几乎没有碰到过,表示运行应用程序中较严重问题,大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。例如,当 JVM 不再有继续执行操作所需的内存资源时,将出现 OutOfMemoryError。 Exception 是程序本身可以处理的异常。也就是你常见的空指针异常(NullPointerException),数组超出范围异常(IndexOutOfBoundsException)等等。

三、检查的异常和非检查的异常

Java的异常(包括Exception和Error)分为已检查的异常(checked exceptions)和非检查的异常(unchecked exceptions)。

① 检查的异常

编译器要求你必须处置的异常,代码还没运行,编译器就会检查你的代码,会不会出现异常,要求你对可能出现的异常必须做出相应的处理。

对检查异常(checked exception)的几种处理方式:

继续抛出,消极的方法,一直可以抛到java虚拟机来处理,就是通过throws exception抛出。

用try...catch捕获

注意,对于检查的异常必须处理,或者必须捕获或者必须抛出。除 RuntimeException 与其子类,以及 Error,其他的都是检查异常。

② 非检查的异常

编译器不要求强制处置的异常,不会在编译的时候检查,一一去检查会使得工作变得更加繁琐,只能在运行时才能检查出来,比如空指针异常等。

对未检查的异常(unchecked exception )的几种处理方式:

捕获

继续抛出

不处理

一般我们是不处理的,因为你很难判断会出什么问题,而且有些异常你也无法运行时处理,比如空指针,需要人手动的去查找。RuntimeException与其子类,以及错误(Error),都是属于这类异常。

java的未检查异常有哪些_Java:检查异常与未检查异常相关推荐

  1. java获取异常的数据_Java(8题):异常,通过try catch进行处理,登录,商品,使用jdbc进行读取,详细图析...

    // 1.要求输入班级人数,人数必须是正整数.通过异常机制来处理下,提示输入的人数不能为负数 package a; import java.util.Scanner; public class yic ...

  2. java非检查性异常有哪些_Java异常处理-检查性异常、非检查性异常、Error

    一.Java异常处理详解 异常.png 目录: 1.java中异常的分类 1.1 异常(Exception) 1.1.1 运行时异常(RuntimeException) 可以不需要捕获 1.1.2 编 ...

  3. java异常详细讲解_Java异常处理机制的详细讲解和使用技巧

    一起学习 1. 异常机制 1.1 异常机制是指当程序出现错误后,程序如何处理.具体来说,异常机制提供了程序退出的安全通道.当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器. 1.2 ...

  4. java 处理异常的场景_Java高级----异常处理机制、自定义异常----含思维导图

    Java高级----异常处理机制.自定义异常----含思维导图 Java高级----异常处理机制.自定义异常----含思维导图 南一Java自学交流QQ群: 586012641 拒绝任何广告,共享Ja ...

  5. java抛异常 代替返回_Java使用和C++类似的异常处理

    Java使用和C++类似的异常处理 (2007-07-12 18:16:19) 1.处理错误的方法有很多流行方法 2.一般方法是把程序处理代码段分散到系统代码中,在可能发生错误的地方处理错误 优点:便 ...

  6. java 异常面试问题_Java异常面试问答

    java 异常面试问题 Java provides a robust and object-oriented approach to handle exception scenarios known ...

  7. java中三种可能导致异常的情况_JAVA基础知识点之异常

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

  8. java 异常 中文_Java中所有的运行时异常,带中文解释

    展开全部 算术异常类:ArithmeticExecption 空指针异常类:NullPointerException 类型强制转换异常:ClassCastException 数组负下标异常:Negat ...

  9. java中三种可能导致异常的情况_Java常见异常种类及产生原因

    JAVA异常共分为下列几种 Error JAVA环境编译错误 Runtime Exception 运行处异常 Exception 标准Java库方法异常 throw 用户自定义异常 异常分为两类 Er ...

最新文章

  1. python 调用linux命令-Python调用shell命令常用方法
  2. 使用diskpart命令修复U盘分区
  3. 【机器视觉】 dev_set_window_extents算子
  4. express.static 和 lit-html
  5. java线程之基础学习
  6. 《ASP.NET Core 3 框架揭秘(上下册)》送书结果公告
  7. python饼状图教程_Python数据可视化:饼状图的实例讲解
  8. Vue 报错Error: No PostCSS Config found解决办法
  9. Android开发之蓝牙(Bluetooth)---源码目录
  10. 阿里淘系21春招实习过经
  11. 国外ipv6服务器网站,国外 ipv6 服务器地址
  12. html5怎么给视频加字幕,怎么给视频添加文字 怎么用Premiere Pro cs6给视频中添加文字...
  13. Ubuntu18.04 下载与安装
  14. Vue + Spring Boot 项目实战(十三):使用 Shiro 实现用户信息加密与登录认证
  15. 100句话记住7000个单词。
  16. CountingSort(计数排序)——C语言实现
  17. 2019年暑期GooGle SWE 凉经
  18. 如何开好项目例会︱中科南京软件技术研究院PMO项目主管薛晓娜
  19. 去广告神器——李跳跳
  20. CSS3 动画属性 - 逆战班

热门文章

  1. bootstrap 学习网址
  2. xdoj判断堆栈出栈序列是否有效c++
  3. 继续教育统考计算机和英语难度怎么样,网络教育英语统考90分的难度怎么样
  4. html聚光灯特效,css实现聚光灯效果的代码分享
  5. 【OS学习笔记】十八 保护模式五:保户模式下如何进行内存保护 与 别名段的意义与作用 对应汇编代码
  6. 移植U-BOOT之支持烧写YAFFS文件系统以及制作U-BOOT补丁
  7. springboot+hbase 集成
  8. 优秀技术人的管理陷阱
  9. Elasticsearch及相关插件的安装
  10. Page object设计模式