浅析Java中的异常处理机制

 更新时间:2020年11月28日 11:55:06   作者:Hateyes  
这篇文章主要介绍了Java中的异常处理机制的相关资料,帮助大家更好的理解和学习Java,感兴趣的朋友可以了解下

异常处理机制

1、抛出异常

2、捕获异常

3、异常处理五个关键字:

try、catch、finally、throw、throws

注意:假设要捕获多个异常:需要按照层级关系(异常体系结构) 从小到大!

package exception;

/**
 * Java 捕获和抛出异常:
 * 异常处理机制
 * 1、抛出异常
 * 2、捕获异常
 * 3、异常处理五个关键字
 * try、catch、finally、throw、throws
 * 注意:假设要捕获多个异常:需要按照层级关系(异常体系结构) 从小到大!
 */
public class Test {

  public static void main(String[] args) {

    int a = 1;

    int b = 0;

    /**
     * try catch 是一个完整的机构体,finally 可以不要
     * 假设IO流,或者跟资源相关的东西,最后需要关闭,关闭的操作就放在 finally 中
     */
    try { //try 监控区域
      System.out.println(a / b);
    } catch (ArithmeticException exception){ //catch(想要捕获的异常类型) 捕获异常
      System.out.println("程序出现异常,变量b不能为0");
    } finally { //处理善后工作
      System.out.println("finally");
    }

    System.out.println("-------------- 分隔符 --------------");

    try {
      new Test().a(); //无限循环
    } catch (Error error){
      System.out.println("Error");
    } catch (Exception exception){
      System.out.println("Exception");
    } catch (Throwable throwable){
      System.out.println("Throwable");
    } finally {
      System.out.println("finally");
    }

  }

  public void a(){
    b();
  }

  public void b() {
    a();
  }
}

捕获异常

快捷键:选中代码 Ctrl + Alt + T

捕获异常的好处:程序不会意外的停止,try catch 捕获异常后程序会正常的往下执行

package exception;

/**
 * 捕获异常快捷键
 * 选中代码后:Ctrl + Alt + T
 * 如:
 * 选中 System.out.println(a / b);
 * 然后快捷键 Ctrl + Alt + T
 */
public class Test2 {

 public static void main(String[] args) {

  int a = 1;
  int b = 0;

  try {
   System.out.println(a / b);
  } catch (Exception exception) {
   exception.printStackTrace(); //打印错误的栈信息
  } finally {
  }

 }
}

抛出异常

1、在方法中抛出异常:throw

2、在方法上抛出异常:throws

package exception;

/**
 * 捕获异常
 * 抛出异常
 */
public class Test3 {

 public static void main(String[] args) {

  /**
   * 方法中抛出异常
   */
  new Test3().test(1,0); //匿名内部类直接调用

  System.out.println("------------ 分隔符 -------------");

  /**
   * 方法上抛出异常
   * 捕获异常的好处:
   * 程序不会意外的停止,try catch 捕获异常后程序会正常的往下执行
   */
  try {
   new Test3().test2(1,0); //匿名内部类直接调用
  } catch (ArithmeticException e) {
   e.printStackTrace();
  }

 }

 /**
  * 在方法中抛出异常:throw
  * @param a
  * @param b
  */
 public void test(int a, int b){
  if (b == 0){ //throw
   throw new ArithmeticException(); //主动抛出异常,一般在方法中使用
  }
  System.out.println(a / b);
 }

 /**
  * 假设在方法中处理不了这个异常,就在方法上抛出异常,然后捕获异常
  * 在方法上抛出异常:throws
  * @param a
  * @param b
  * @throws ArithmeticException
  */
 public void test2(int a, int b) throws ArithmeticException{
  if (b == 0){
   throw new ArithmeticException();
  }
 }
}

以上就是浅析Java中的异常处理机制的详细内容,更多关于Java 异常处理机制的资料请关注脚本之家其它相关文章!

相关文章

  • JavaGUI常用窗体组件与面板使用详解

    JavaGUI常用窗体组件与面板使用详解

    GUI即图形用户界面,它是基于图形的界面,windows就是一个图形用户界面的操作系统,而DOS是基于命令提示符的操作系统,GUI编程就是编出一个图形用户界面的软件,它使用图形的方式,以菜单、按钮、表示、图文框等标准界面元素组成的用户操作界面
    2023-03-03
  • Java实现统计在线人数功能的方法详解

    Java实现统计在线人数功能的方法详解

    很多人在笔试或者面试中问到:现在要你实现一个统计在线人数的功能,你该怎么设计?不知道的朋友,这篇文章就来告诉你具体实现方法
    2022-08-08
  • SpringBoot配置绑定方法详解

    SpringBoot配置绑定方法详解

    配置绑定是SpringBoot其中一个底层功能,SpringBoot把配置绑定的过程变得更加简单,传统java将常用的配置放到配置文件properties中,之后将这些配置绑定到javabean中
    2022-10-10
  • SpringBoot中使用AOP切面编程实现登录拦截功能

    SpringBoot中使用AOP切面编程实现登录拦截功能

    本文介绍了如何使用AOP切面编程实现Spring Boot中的登录拦截,通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2024-12-12
  • Java transient关键字使用小记

    Java transient关键字使用小记

    这篇文章主要为大家详细介绍了Java transient关键字的使用方法,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • Java 二分查找的实现及图例解析

    Java 二分查找的实现及图例解析

    这篇文章主要介绍了Java 二分查找的实现,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-12-12
  • Spring Boot项目如何同时支持HTTP和HTTPS协议的实现

    Spring Boot项目如何同时支持HTTP和HTTPS协议的实现

    这篇文章主要介绍了Spring Boot项目如何同时支持HTTP和HTTPS协议的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • Java中File类中常用方法详解

    Java中File类中常用方法详解

    这篇文章主要为大家详细介绍了File类中常用方法的程序演示,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • Nacos配置中心设计原理分析

    Nacos配置中心设计原理分析

    今天分享一下Nacos配置变更的相关知识点,现在使用Java生态如果使用微服务,如果部署在K8s上,那么可能会使用ConfigMap来存储配置文件,如果没有使用K8s,那么基本上都使用Nacos来做配置中心,所以有必要了解一下Nacos的配置的知识点,本文只是对其中的部分实现原理进行分析
    2023-10-10
  • Java反射中java.beans包学习总结

    Java反射中java.beans包学习总结

    本篇文章通过学习Java反射中java.beans包,吧知识点做了总结,并把相关内容做了关联,对此有需要的朋友可以学习参考下。
    2018-02-02

最新评论