程序员的网络日志 程序员的网络日志
首页
  • 计算机科学导论
  • 数字电路
  • 计算机组成原理
  • C语言
  • 数据结构
  • 汇编语言
  • 操作系统
  • Linux
  • 编译原理
  • 计算机网络
  • 数据库
  • Java基础
  • JavaWeb
  • 笔记软件
  • Quicker
  • Qttabar
  • Wgesture
  • 浏览器与插件
  • 视频播放器
  • 待办清单
  • 终端软件
  • uTools
  • 番茄盒子
  • 网站日记
  • 赞赏支持
  • 关于本站
  • 如何搭建一个博客
  • 如何搭建一个邮箱
GitHub (opens new window)
首页
  • 计算机科学导论
  • 数字电路
  • 计算机组成原理
  • C语言
  • 数据结构
  • 汇编语言
  • 操作系统
  • Linux
  • 编译原理
  • 计算机网络
  • 数据库
  • Java基础
  • JavaWeb
  • 笔记软件
  • Quicker
  • Qttabar
  • Wgesture
  • 浏览器与插件
  • 视频播放器
  • 待办清单
  • 终端软件
  • uTools
  • 番茄盒子
  • 网站日记
  • 赞赏支持
  • 关于本站
  • 如何搭建一个博客
  • 如何搭建一个邮箱
GitHub (opens new window)
  • Java基础

    • Java基础
    • Java概述
    • 安装
    • 第一个Java程序
    • 数据类型
    • 字符串
    • 数组
    • 对象
    • 异常
      • 12.4 更多知识
    • IO
    • 数据结构
  • JavaWeb

  • Java
  • Java基础
程序狗
2022-07-26
目录

异常

# Exception

类 可能引起异常的原因
LinkageError 一个类对另一个类有某种依赖性,但是在编译前者后,后者进行了修改,变得不兼容
virtualMachineError Java虚拟机崩溃,或者运行所必需的资源已经耗尽

异常(exception)是用Exception类表示的,它描述的是由程序和外部环境所引起的错误,这些错误能被程序捕获和处理。表12—2列出Exception类的子类的一些例子。

表12—2 Exception类的子类的例子

类 可能引起异常的原因
ClassNotFoundException 试图使用一个不存在的类。例如,如果试图使用命令java来运行一个不存在的类,或者程序要调用三个类文件而只能找到两个,都会发生这种异常
IOException 同输入/输出相关的操作,例如,无效的输入、读文件时超过文件尾、打开一个不存在的文件等。IOException的子类的例子有InterruptedIOException. EOFException (EOF是End Of File的缩写)和FileNotFoundException

运行时异常(runtime exception)是用RuntimeException类表示的,它描述的是程序设计错误,例如,错误的类型转换、访问一个越界数组或数值错误。运行时异常通常是由Java虚拟机抛出的。表12—3列出RuntimeException的子类的一些例子。

表12—3 RuntimeException类的子类的例子类

类 可能引起异常的原因
ArithmeticException 一个整数除以0。注意,浮点数的算术运算不抛出异常。参见附录E
NullPointerException 试图通过一个nul1引用变量访问一个对象
IndexOutOfBoundsException 数组的下标超出范围
IllegalArgumentException 传递给方法的参数非法或不合适

RuntimeException, Error以及它们的子类都称为免检异常(unchecked exception)。所有其他异常都称为必检异常( checked exception),意思是指编译器会强制程序员检查并通过try—catch块处理它们,或者在方法头进行声明。在方法头声明一个异常将在12.4节中讨论到。

在大多数情况下,免检异常都会反映出程序设计上不可恢复的逻辑错误。例如,如果通过一个引用变量访问一个对象之前并未将一个对象赋值给它,就会抛出Nul1PointerException异常;如果访问一个数组的越界元素,就会抛出IndexOutOfBoundsException异常。这些都是程序中必须纠正的逻辑错误。免检异常可能在程序的任何一个地方出现。为避免过多地使用try—catch块, Java语言不强制要求编写代码捕获或声明免检异常。


# 12.4 更多知识

要点提示:异常的处理器是通过从当前的方法开始,沿着方法调用链,按照异常的反向传播方向找到的。

异常处理模型基于三种操作:声明一个异常、抛出一个异常和捕获一个异常

上次更新: 2022/8/7 09:00:48
对象
IO

← 对象 IO→

最近更新
01
搭建实验环境
10-25
02
《计算机网络微课堂》课堂介绍
10-25
03
第一章 因特网概述
10-25
更多文章>
Theme by Vdoing | Copyright © -2022 粤ICP备2022067627号-1 粤公网安备 44011302003646号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式