为了账号安全,请及时绑定邮箱和手机立即绑定

关于Java异常的疑问

关于Java异常的疑问

慕虎7371278 2018-09-05 21:30:23
众所周知下面的代码编译不过:public class test{    private static void haha(){        throw new Exception();     }    public static void main(String[] args) {         haha();        return;     } }javac test.java未报告的异常错误Exception; 必须对其进行捕获或声明以便抛出。但是下面的代码没有进行错误处理,却能够通过编译:public class test{     public static void main(String[] args) {         String s = new String("test");         System.out.println(s.substring(0,6));                 return;     }      }javac test.javajava testException in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 6         at java.lang.String.substring(Unknown Source)         at test.main(test.java:4)请问这是什么原因?
查看完整描述

2 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

第一个抛出的是Exception是checked异常,也就是编译器异常,所以必须手动处理。第二个抛出的StringIndexOutOfBoundsException是unchecked异常,运行时异常,所以不需要手动处理

查看完整回答
反对 回复 2018-09-16
?
米脂

TA贡献1836条经验 获得超3个赞

StringIndexOutOfBoundsException继承了RuntimeException,不需要显式地声明处理。

查看完整回答
反对 回复 2018-09-16
  • 2 回答
  • 0 关注
  • 754 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号