打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
RuntimeException和非RuntimeException的区别

1、所有方法都可以在不声明throws的情况下抛出RuntimeException及其子类
     不可以在不声明的情况下抛出非RuntimeException

     比如,假设自己定义了个MyException
     public   String   getFirstTwo(String   src){
           //if(src   ==   null)   throw   new   MyException( "String   is   null ");
          return   src.substring(0,   2);
     }
     注释的语句不放开,不会出错
    如果别的地方调用了getFirstTwo(null),在getFirstTwo方法中,null.substring(0,2)方法是会抛出运行时异常

    NullPointerException的,虽然getFirstTwo方法并没有申明会throws   NullPointerException,但是实际运行中这个

    异常还是会从getFirstTwo方法抛出给调用这个方法的地方。而如果把注释语句放开,则无法通过编译,

    MyException是一个非运行时异常,如果方法中的语句可能抛出这个异常必须将方法声明为public   String  

     getFirstTwo(String   src)   throws   MyException才可以。

 

|--Error
   Throwable <-|                           |--RuntimeException
                        |--Exception <-|
                                                  |--Misc.Exception

Error和RuntimeException是非检查型异常,其他的都是检查型异常。

checked   exception   :方法只抛出它自己声明要抛出的异常。

简单的说,非RuntimeException要自己写catch块处理掉。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Java中自定义异常
异常
Java异常简介及其架构
java异常中 throw 与 throws关键字的区别
8.4自定义异常和throw、throws的使用
一些常见的RuntimeException
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服