欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

Java异常处理实例详解

时间:2022-09-21 08:29:20|栏目: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. 编写异常类

语法:(继承 extends Exception 类)

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: 自定义异常!

上一篇:基于JavaSwing+mysql开发一个学生社团管理系统设计和实现

栏    目:JAVA代码

下一篇:关于dubbo 自定义线程池的问题

本文标题:Java异常处理实例详解

本文地址:http://www.codeinn.net/misctech/214301.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有