目录

一、异常概念

一、什么是异常

二、异常产生原因

三、异常使用原则

 二、异常分类及常见异常

一、异常分类

二、异常分类图以及常见异常


一、异常概念

一、什么是异常

        指程序在运行过程中,出现的非正常的情况,最终会导致java虚拟机(jvm)的非正常停止。

二、异常产生原因:

在 Java 中一个异常的产生,主要有如下三种原因:

(1)Java 内部错误发生异常,Java 虚拟机产生的异常。

(2)编写的程序代码中的错误所产生的异常,例如空指针异常、数组越界异常等。这种异常称为未检査的异常,一般需要在某些类中集中处理这些异常。

(3)通过 throw 语句手动生成的异常,这种异常称为检査的异常,一般用来告知该方法的调用者一些必要的信息。

三、异常使用原则:

Java 异常强制用户考虑程序的强健性和安全性。异常处理不应用来控制程序的正常流程,其主要作用是捕获程序在运行时发生的异常并进行相应处理。编写代码处理某个方法可能出现的异常,可遵循如下三个原则:

(1)在当前方法声明中使用 try catch 语句捕获异常。

(2)一个方法被覆盖时,覆盖它的方法必须拋出相同的异常或异常的子类。

(3)如果父类抛出多个异常,则覆盖方法必须拋出那些异常的一个子集,而不能拋出新异常。

二、异常分类及常见异常

一、异常分类

Throwable 类是所有异常和错误的超类,下面有 Error Exception 两个子类分别表示错误和异常。

           Exception 类用于用户程序可能出现的异常情况,它也是用来创建自定义异常类型类的类。

 常见exception

Java 中发生异常 java异常情况_子类

           Error 定义了在通常环境下不希望被程序捕获的异常。Error 类型的异常用于 Java 运行时由系统显示与运行时系统本身有关的错误。堆栈溢出是这种错误的一例。Error 类型的异常通常是灾难性的致命错误,不是程序可以控制的。

常见error

Java 中发生异常 java异常情况_java_02

运行时异常(不检查异常)非运行时异常(检查异常

        运行时异常都是RuntimeException 类及其子类异常,如 NullPointerException、IndexOutOfBoundsException 等,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般由程序逻辑错误引起,程序应该从逻辑角度尽可能避免这类异常的发生。

        非运行时异常是指 RuntimeException 以外的异常,类型上都属于 Exception 类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如 IOException、ClassNotFoundException 等以及用户自定义的 Exception 异常,一般情况下不自定义检查异常。表 1 列出了一些常见的异常类型及它们的作用。

二、异常分类图以及常见异常

Java 中发生异常 java异常情况_java_03

1. RuntimeException子类:

Java 中发生异常 java异常情况_开发语言_04

2.IOException

Java 中发生异常 java异常情况_开发语言_05

3. 其他

Java 中发生异常 java异常情况_java_06