Java异常处理实例详解

 更新时间:2021年03月01日 17:03:01   作者:Michael阿明  
这篇文章主要介绍了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: 自定义异常!

到此这篇关于Java异常处理实例详解的文章就介绍到这了,更多相关Java异常处理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java数据结构与算法之简单选择排序详解

    java数据结构与算法之简单选择排序详解

    这篇文章主要介绍了java数据结构与算法之简单选择排序,结合实例形式分析了选择排序的原理、实现方法与相关操作技巧,需要的朋友可以参考下
    2017-05-05
  • Java基本语法小白入门级

    Java基本语法小白入门级

    Java基本语法就是指java中的规则,也是一种语言规则,规范,同时也能让您在后面的学习中避免不必要的一些错误和麻烦,是您学好java必修的第一门课程
    2023-05-05
  • Java 如何使用@Autowired注解自动注入bean

    Java 如何使用@Autowired注解自动注入bean

    这篇文章主要介绍了Java 使用@Autowired注解自动注入bean的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • spring学习之创建项目 Hello Spring实例代码

    spring学习之创建项目 Hello Spring实例代码

    这篇文章主要介绍了spring学习之创建项目 Hello Spring实例代码,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • logback如何自定义日志存储

    logback如何自定义日志存储

    这篇文章主要介绍了logback如何自定义日志存储的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Java8 stream流分组groupingBy的使用方法代码

    Java8 stream流分组groupingBy的使用方法代码

    对于java8的新特性groupingBy方法,相信有很多人都在工作中用过,这篇文章主要给大家介绍了关于Java8 stream流分组groupingBy的使用方法,需要的朋友可以参考下
    2024-01-01
  • Java中Boolean与字符串或者数字1和0的转换实例

    Java中Boolean与字符串或者数字1和0的转换实例

    下面小编就为大家带来一篇Java中Boolean与字符串或者数字1和0的转换实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • OpenFeign调用服务请求头丢失Token的解决

    OpenFeign调用服务请求头丢失Token的解决

    这篇文章主要介绍了OpenFeign调用服务请求头丢失Token的解决方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Java参数校验Validator与@AssertTrue深度解析

    Java参数校验Validator与@AssertTrue深度解析

    本文详细介绍了Java的Validator框架及其@AssertTrue注解的使用,包括环境准备、基础注解介绍、实战示例、@AssertTrue的深入解析、高级特性和最佳实践建议,感兴趣的朋友跟随小编一起看看吧
    2025-01-01
  • Spring Boot Admin的使用详解(Actuator监控接口)

    Spring Boot Admin的使用详解(Actuator监控接口)

    这篇文章主要介绍了Spring Boot Admin的使用详解(Actuator监控接口),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05

最新评论