java 异常

1.异常的基本概念

异常又被称为例外,是特殊的运行错误对象,对应着java语言 特定的运行错误 处理机制

2.由来

由于java程序是运行在网络环境中的,安全成为需要首先考虑的重要因素之一。为了能够及时有效地处理程序中的运行错误,java引入了异常和异常类。

3.异常处理机制

java声明了很多异常类,每个异常类都代表了一种运行错误,类中包含了该运行 错误的信息和处理错误的方法等内容。每当java程序运行过程中发生一个可识别的运行错误时,即该错误有一个异常类与之相对应,系统都会产生一个相应的该异常类的对象,即产生一个异常。一旦一个异常对象产生了,系统中就一定会有相应的机制来处理它,确保不会死机、死循环或其他对操作系统的损坏,从而保证了整个程序运行的安全性。这就是java的异常处理机制。

4.错误的分类

通常程序中的错误可以分成三种类型:编译错误,运行错误,逻辑错误。

  1. 编译错误:是编译器能够检测到的错误,一般为语法错误;
  2. 运行错误:是运行时产生的错误,如被0除、数组下标越界等;
  3. 逻辑错误:是机器本身无法检测的,需要人对运行结果及程序逻辑进行认真分析, 逻辑错误有时会导致运行错误

java中根据错误的严重程度不同,而将错误分为如下两类。

  • . 错误:是致命性的,即程序遇到了非常严重的不正常状态,不能简单地恢复 执行。

  • -. 异常:是非致命性的,通过某种修正 后程序还能继续执行。

所有的包中都声明了异常类和错误类。Exception类是所有异常类的父类;Error类是所有错误类的父类。这两个同时又是Throwable的子类。
这里写图片描述

5.异常的处理

java通过面向对象的方法来处理程序错误,为可能发生非致命错误设计错误处理模块,将错误作为预定义好的“异常”捕获,然后传递给专门的错误处理模块进行处理。
对于检查型异常,java必须强迫程序进行处理。处理方法有如下两种:

  1. 声明抛出异常:不在当前方法内处理异常,而是把异常抛出到调用的方法中。

    注:在一个方法的运行过程中,如果发生了异常,则这个方法(或者是java虚拟
    机)便生成一个代表该异常的对象(包含了该异常的详细信息),并把交给运行时系统,运行时系统便寻找相应的代码来处理这一异常。我们把生成异常对象并提交的过程称为抛出(thorw)一个异常。

  2. 捕获异常:使用try{}catch(){} 块,捕获到所发生的异常,并进行相应的处理。

    注:运行时系统在方法的调用栈中查找,从生成异常的方法开始进行回溯,直到找到包含相应异常处理的方法为止,这一个过程称为捕获(cath)一个异常

6.生成异常对象

  1. 前面所提到的异常是由java虚拟机生成,或者是由java类库中的某些类生产。事实上,在程序中也可以生成自己的异常对象,也就是异常可以不是出错产生,而是人为地抛出。不伦是那种方式,生成异常对象都是通过throw语法实现,如:
  throw new ThrowableObject();
  ArithmeticException e=new ArithmeticExcption():
  throw e

注:生成的异常对象必须是Throwable或其子类的实例。

2.声明自己的异常类:用户自己定义的所有异常类必须是Exception的子类

public class DivideByZeroExceptionText extends ArithmeticException {
    public DivideByZeroExceptionText() {
        super("除数为0异常");
    }
}
private int  chu(int a,int b){
        if(b==0){
            throw new DivideByZeroExceptionText();
        }
        return a/b;
    }
Caused by: com.example.administrator.test.DivideByZeroExceptionText: 除数为0异常

注:生成的异常对象必须是Throwable或其子类的实例。

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页