Think in JAVA中“被检查的异常”的理解
来源:互联网 发布:爱上学软件下载 编辑:程序博客网 时间:2024/05/01 05:42
看到最后一直很迷茫 “被检查的异常”为什么意思;
public class ExceptionTypeTest { public void doSomething()throws ArithmeticException{ System.out.println(); } public static void main(){ ExceptionTypeTest ett = new ExceptionTypeTest(); ett.doSomething(); } }
问题1:上面的程序能否编译通过?并说明理由。
解答:能编译通过。
分析:按照一般常理,定义doSomething方法是定义了ArithmeticException异常,在main方法里 里面调用了该方法。那么应当继续抛出或者捕获一下。但是ArithmeticException异常是继承RuntimeException运行时异常。 java里面异常分为两大类:checked exception(检查异常)和unchecked exception(未检查异常),对于未检查异常也叫RuntimeException(运行时异常),对于运行时异常,java编译器不要求你一定要把它捕获或者一定要继续抛出,但是对checked exception(检查异常)要求你必须要在方法里面或者捕获或者继续抛出.
问题2:上面的程序将ArithmeticException改为IOException能否编译通过?并说明理由。
解答:不能编译通过。
分析:IOException extends Exception 是属于checked exception ,必须进行处理,或者必须捕获或者必须抛出
总结:java中异常分为两类:checked exception(检查异常)和unchecked exception(未检查异常)
对于未检查异常也叫RuntimeException(运行时异常).
对未检查的异常(unchecked exception )的几种处理方式:
1、捕获
2、继续抛出
3、不处理
对检查的异常(checked exception,除了RuntimeException,其他的异常都是checked exception )的几种处理方式:
1、继续抛出,消极的方法,一直可以抛到java虚拟机来处理
2、用try...catch捕获
注意,对于检查的异常必须处理,或者必须捕获或者必须抛出
Think Java:
开发“被检查的异常” 对开发健壮的程序是非常必要的前提:
1.不在于编译器是否会强制程序员去处理错误,而是要有一致的、使用异常来报告错误的模型;
- Think in JAVA中“被检查的异常”的理解
- 【think in java】 线程的异常捕获
- Java中检查的异常与未检查的异常
- Java中检查的异常与未检查的异常
- Java中检查的异常与未检查的异常
- think in java 12 异常
- Think in java中关于吸血鬼数字问题的算法
- Java中异常的理解
- Think in Java 笔记_Chapter12_1_Exception基础_异常处理3_自定义异常以及抛出多个异常的处理
- 运行 Think In Java中的 RMI 示例可能产生的几种异常及解决
- [Think in java]静态数据的初始化
- Think in Java 实例变量的初始化
- Java的异常检查机制
- 《Think in java》多线程学习理解-01
- think in java中 7.6.7章中关于内部类覆盖的一些看法
- 學習think in Java中,希望和正在學的朋友交流!
- Think in Java中多线程所接触到且需要学习的类和接口
- java基础中 关于“异常”的理解
- linux设备驱动归纳总结(三):3面向对象思想和lseek
- Glide-自定义缓存
- 2017年情人节热衷旅游异性情侣占比56%
- 微信群发机器人源代码
- Linux学习笔记6 cat,tac,more,less,head,tail
- Think in JAVA中“被检查的异常”的理解
- nginx 限速功能
- windows7 Scrapy安装详细教程
- Android编程权威指南(第二版)学习笔记(二十四)—— 第24章 Looper、Handler 和 HandlerThread
- Spark性能优化:数据倾斜调优
- 【Leetcode-Java】102. Binary Tree Level Order Traversal
- moquitto安装遇到的问题
- FullCalendar控件的使用
- 粒子群算法