JAVA异常处理捕获与抛出原理解析

 更新时间:2020年09月10日 08:30:18   作者:agrin  
这篇文章主要介绍了JAVA异常处理捕获与抛出原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

JAVA 异常

当代码运行出现错误导致程序终止运行或出现错误情况的状况,就是异常。异常不是指语法错误,即不属于编译错误,只有运行的程序才会有异常。

这个时候,JAVA 就提供了优秀的处理方法:异常处理
异常处理能让程序在异常发生时,按照异常处理设定的逻辑对异常进行处理,最大程度保证程序继续运行,并且显示并处理异常。

JAVA 程序发生异常,就会用对应的异常类的对象来封装异常,JRE(Java Runtime Environment) 便会寻找对应的异常处理逻辑来处理该异常。

总的说来,异常处理机制就是,当 JAVA 异常出现,会将其封装成对象,JRE 会通过对象特点寻找已经设定好的处理逻辑进行处理。

JAVA 异常处理方式

try...catch...finally (有单catch和多catch处理方式,执行逻辑基本相同,finally 可要可不要)

public class Try{
  public static void test(){
    try {
      
    } catch (Exception e) {
      //TODO: handle exception
    } finally{
      //TODO: recycle 
    }
  }
}
  • try: 置放需要监听的代码块,当代码块出现异常,异常会被抛出
  • catch: 用于捕获 try 代码块的抛出的异常
  • finally: 在异常抛出与捕获之前执行,主要用于回收 try 代码块里打开的资源(比如连接,文件等),如果 finally 代码块有终止语句,那么不会向后执行
  • throw: 抛出异常
  • throws: 用于方法签名中,声明该方法可能抛出的异常

同时异常类很多,还可以通过继承 Exception 类来自定义异常,同时还可以通过
assert 关键字进行断言检查(在命令行模式下运行Java程序时可增加参数-enableassertions或者-ea打开断言。可通过-disableassertions或者-da关闭断言)。至于有哪些异常类,怎么用,就看文档吧。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 浅析Spring配置中的classpath:与classpath*:的区别

    浅析Spring配置中的classpath:与classpath*:的区别

    这篇文章主要介绍了Spring配置中的"classpath:"与"classpath*:"的区别,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • 远程debug调试入门

    远程debug调试入门

    这篇文章主要介绍了Eclipse的Debug调试技巧大全(总结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧吗,希望能给你带来帮助
    2021-06-06
  • idea中报错不支持发行版本问题及解决

    idea中报错不支持发行版本问题及解决

    在使用Spring框架进行项目开发时,有时会遇到因JDK版本不一致导致的项目运行错误,解决此问题的方法主要有两步:首先,确保项目的Project和Modules设置中的JDK版本一致;其次,在IDE的Settings中找到Java Compiler
    2024-11-11
  • Java Shutdown Hook场景使用及源码分析

    Java Shutdown Hook场景使用及源码分析

    shutdown hook 就是一个简单的已初始化但是未启动的线程,本文详细的介绍了Java Shutdown Hook场景使用及源码分析,感兴趣的朋友可以参考一下
    2021-06-06
  • Java新手环境搭建 Tomcat安装配置教程

    Java新手环境搭建 Tomcat安装配置教程

    这篇文章主要为大家详细介绍了Java新手环境搭建的相关资料,Tomcat安装配置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • SpringBoot服务端数据校验过程详解

    SpringBoot服务端数据校验过程详解

    这篇文章主要介绍了SpringBoot服务端数据校验过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • java优先队列PriorityQueue中Comparator的用法详解

    java优先队列PriorityQueue中Comparator的用法详解

    这篇文章主要介绍了java优先队列PriorityQueue中Comparator的用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • SpringBoot使用自动配置xxxAutoConfiguration

    SpringBoot使用自动配置xxxAutoConfiguration

    这篇文章介绍了SpringBoot自动配置xxxAutoConfiguration的使用方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • webservice实现springboot项目间接口调用与对象传递示例

    webservice实现springboot项目间接口调用与对象传递示例

    本文主要介绍了webservice实现springboot项目间接口调用与对象传递示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • java 遍历Map的几种方法总结

    java 遍历Map的几种方法总结

    这篇文章主要介绍了java 遍历Map的四种方法,帮助大家更好的理解和学习Java,感兴趣的朋友可以了解下
    2020-10-10

最新评论