08.异常处理机制

在Java中我们可以将错误分为两种

一类是Error,在Java中用Error类示意。意味着发生了JVM检测到到的严重错误,导致JVM无法继续运行。这种错误程序是不能处置的,由于程序无法捕捉到它,也就难以接纳响应的处置措施。

另一类在Java中称为异常类,示意是可以恢复的,程序能够捕捉到,因此在程序中可以接纳适当的措施举行处置。

一.Java中的异常处置机制

在Java语言中,我们将程序运行时有可能发生的错误称为异常,有时也称为破例。

Java中引入了异常和异常类,异常是异常类的工具。

Java中的异常处置机制就是:Java程序在运行中,当发生一个可以鉴别的异常时,都有这个异常的异常类与之对应,并发生该异常类的一个工具,系统就会有响应的机制来处置异常。

接纳异常处置机制,使得异常处置代码和程序中的其他部门离隔,增添程序的清晰性与可读性。

二.Java异常处置类

Java异常类由系统库中Exception类派生的,而Exception类由throwable类派生

Java.lang.Object
	java.lang.Throwable
		java.lang.Error//错误--操作系统保留
		java.lang.Exception//异常--应用程序使用

Exception类

  • 条理图

异常类型 说明
Exception 异常条理结构的根类
RuntimeException 运行时异常,多数 java.lang 异常的根类
ArithmeticException 算术谱误异常,如以零做除数
ArraylndexOutOfBoundException 数组巨细小于或大于现实的数组巨细
NullPointerException 实验接见 null 工具成员,空指针异常
ClassNotFoundException 不能加载所需的类
NumberF ormatException 数字转化花样异常,好比字符串到 float 型数字的转换无效
IOException I/O 异常的根类
F ileN otF oundException 找不到文件
EOFException 文件竣事
InterruptedException 线程中止
IllegalArgumentException 方式接收到非法参数
ClassCastException 类型转换异常
SQLException 操作数据库异常
  • 组织方式

public Exception();
public Exception(String s)
  • 从父类Throwable继续的常用方式

public String toString()//返回形貌Exception类信息的字符串
public void printStackTrace()//

三.异常的处置

Java的异常处置有以下几种方式:

Docker_01

对运行时异常可以不做处置,由Java系统检测

用try – catch – finally 捕捉异常

用throws句子抛出

用户自界说异常

捕捉异常

try{
	//可能发生异常的代码片断
}catch(异常类型 异常变量){
	//异常处置
}[finally{
	//不管是否发生异常总要执行的代码
}]
import java.io.*;
public class ExcepTest{
 
   public static void main(String args[]){
      try{
         int a[] = new int[2];
         System.out.println(a[3]);
      }catch(ArrayIndexOutOfBoundsException e){
         System.out.println("Exception thrown  :" + e);
      }
      System.out.println("Out of the block");
   }
}

抛出异常

对于非运行时系统的异常,当界说的方式可能发生异常时,程序员必须抛出可能的异常。

  • throw

throw语句用于抛出一个异常。

异常是某个异常类的工具,当有了异常类的实例之后就可以用throw语句抛出。

public class m1 {
    public static void main(String [] args){
        Student stu1 = new Student();
        stu1.deposit();
    }
}
class Student{
    public void deposit(){
        throw new ArithmeticException();
    }
}
  • throws

为了指明在你界说的方式体内的某些代码可能会发生异常,可以在界说方式时使用throws关键字,并带有该方式可能包罗异常的名字。

public class m1 {
    public static void main(String [] args){
        Student stu1 = new Student();
        stu1.deposit();
    }
}
class Student{
    public void deposit() throws ArrayIndexOutOfBoundsException{//数组越界异常
        int a[] = new int[2];
        System.out.println(a[3]);
    }
}

用户自界说异常

对于某个程序特有的错误,需要编程职员凭据程序自身逻辑在用户程序中自己建立异常类和异常工具。

用户界说的异常类必须是Throwable的子类,Java推荐以Exception类作为直接父类建立用户异常类。

public class m1 {
    public static void main(String [] args) throws Demo1{
        throw new Demo1();
    }
}
class Demo1 extends Exception{//用户自界说异常
    Demo1(){
        System.out.println("Exception occured");
    }
}

原创文章,作者:870t新闻网,如若转载,请注明出处:https://www.870t.com/archives/15797.html