一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Java异常处理实例代码解析

时间:2021-03-01 编辑:袖梨 来源:一聚教程网

本篇文章小编给大家分享一下Java异常处理实例代码解析,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。

1. 异常例子

class TestTryCatch {
  public static void main(String[] args){
    int arr[] = new int[5];
    arr[7] = 10;
    System.out.println("end!!!");
  }
}

输出:(越界)

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
	at TestTryCatch.main(TestTryCatch.java:4)

进程已结束,退出代码1

2. 异常处理

class TestTryCatch {
  public static void main(String[] args){
    try {
      int arr[] = new int[5];
      arr[7] = 10;
    }
    catch (ArrayIndexOutOfBoundsException e){
      System.out.println("数组范围越界!");
      System.out.println("异常:"+e);
    }
    finally {
      System.out.println("一定会执行finally语句块");
    }
    System.out.println("end!!!");
  }
}

输出:

数组范围越界!
异常:java.lang.ArrayIndexOutOfBoundsException: 7
一定会执行finally语句块
end!!!

3. 抛出异常

语法:throw 异常类实例对象;

int a = 5, b = 0;
try{
  if(b == 0)
    throw new ArithmeticException("一个算术异常,除数0");
  else
    System.out.println(a+"/"+b+"="+ a/b);
}
catch(ArithmeticException e){
  System.out.println("抛出异常:"+e);
}

输出:

抛出异常:java.lang.ArithmeticException: 一个算术异常,除数0

对方法进行异常抛出

void add(int a, int b) throws Exception {
    int c = a/b;
    System.out.println(a+"/"+b+"="+c);
  }
TestTryCatch obj = new TestTryCatch();
obj.add(4, 0);

输出:(报错)

java: 未报告的异常错误java.lang.Exception; 必须对其进行捕获或声明以便抛出

可见,方法后面跟了throws 异常1, 异常2...,则必须在调用处处理

改为:

TestTryCatch obj = new TestTryCatch();
try{
  obj.add(4, 0);
}
catch (Exception e){
  System.out.println("必须处理异常:"+e);
}

输出:

必须处理异常:java.lang.ArithmeticException: / by zero

4. 编写异常类

语法:(继承 extendsException类)

class 异常类名 extends Exception{
	......
}
class MyException extends Exception{
  public MyException(String msg){
    // 调用 Exception 类的构造方法,存入异常信息
    super(msg);
  }
}
try{
  throw new MyException("自定义异常!");
}
catch (Exception e){
  System.out.println(e);
}

输出:

MyException: 自定义异常!

热门栏目