博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java检查型异常和非检查型异常
阅读量:6278 次
发布时间:2019-06-22

本文共 2218 字,大约阅读时间需要 7 分钟。

1.代码

public class ExcepTest {    /**     * @param args     */    public static void main(String[] args) {        System.err.println("111111111111");//        say();  //抛出异常,但是代码不显示的try..catch..        //        calc(); //抛出异常,但是代码不显示的try..catch..        //        try {//            show();//        } catch (Exception e) {//            e.printStackTrace();//            System.err.println("异常成功捕获。。");//        }        //        try {//            view();//        } catch (Exception e) {//            e.printStackTrace();//            System.err.println("异常成功捕获。。");//        }                calc22();        System.err.println("222222222222");    }        public static void say(){            //new NullPointerException        System.err.println("say>>>>");        throw new NullPointerException();    }        public static void calc() {           //throws ArithmeticException ,这个异常不提示。        System.err.println("calc>>>>");        int i = 0, j = 0;        System.err.println( i/j );    }        public static void show() throws Exception{  //这个异常提示。        System.err.println("show>>>>");        int i = 0, j = 0;        System.err.println( i/j );    }        public static void view() throws Exception{        System.err.println("view>>>>");        throw new Exception();    }        public static void calc22(){        System.err.println("calc22>>>>");        try {            int i = 0, j = 0;            int k = i/j ;        } catch (Exception e) {            System.err.println("异常处理完毕。。。。");//            throw e;  //异常再度抛出。//            throw new ArithmeticException();   //继承自exception的则是检查型异常(当然,runtimeexception本身也是exception的子类//            throw new RuntimeException();  //(当然,runtimeexception本身也是exception的子类            //继承自runtimeexception或error的是非检查型异常            //ArithmeticException继承RuntimeException                    }        System.err.println("calc22>>>>calc22");    }}

2.说明

使用spring难免要用到spring的事务管理,要用事务管理又会很自然的选择声明式的事务管理,在spring的文档中说道,spring声明式事务管理默认对非检查型异常和运行时异常进行事务回滚,而对检查型异常则不进行回滚操作。
那么什么是检查型异常什么又是非检查型异常呢?
最简单的判断点有两个:
1.继承自runtimeexception或error的是非检查型异常,而继承自exception的则是检查型异常(当然,runtimeexception本身也是exception的子类)。
2.对非检查型类异常可以不用捕获,而检查型异常则必须用try语句块进行处理或者把异常交给上级方法处理总之就是必须写代码处理它。
引用:

 

转载地址:http://vnyva.baihongyu.com/

你可能感兴趣的文章
JDK1.8源码(五)——java.util.ArrayList 类
查看>>
Spring Data JPA 实例查询
查看>>
.NET成年了,然后呢?
查看>>
Leaf——美团点评分布式ID生成系统
查看>>
Redis集群中的节点如何保证数据一致
查看>>
jsp里面不能使用${pageContext.request.contextPath}解决方案
查看>>
Spring注解之 @EnableScheduling计划任务注解
查看>>
解决 IDEA 中src下xml等资源文件无法读取的问题
查看>>
error: each element of 'ext_modules' option must be an Extension instance or 2-tuple
查看>>
(总结)Nginx配置文件nginx.conf中文详解
查看>>
openssl用法详解
查看>>
[Java web]Spring+Struts2+Hibernate整合过程(2)
查看>>
基于ThinkPHP与阿里大于的PHP短信验证功能
查看>>
ASP.NET Core 2 学习笔记(十二)REST-Like API
查看>>
react 调用 function 的写法 及 解决 react onClick 方法自动执行
查看>>
adb 切换android输入法
查看>>
OSAL工作机制分析
查看>>
Spring Cloud入门教程(二):客户端负载均衡(Ribbon)
查看>>
BZOJ2681 : 玩游戏2
查看>>
Solr DocValues详解
查看>>