Java常见笔试面试题目解析(十):Java中检查的异常与未检查的异常

编程技术  /  houtizong 发布于 3年前   143
public class ExceptionTypeTest {      public void doSomething()throws ArithmeticException{          System.out.println();      }      public static void main(){          ExceptionTypeTest ett = new ExceptionTypeTest();          ett.doSomething();      }  }  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捕获
        注意,对于检查的异常必须处理,或者必须捕获或者必须抛出

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客