异常

作者: jimi_jin | 来源:发表于2016-10-14 11:27 被阅读0次

    异常体系

    异常的继承关系是Throwable-->error/Exception-->RunTimeException/ otherException:

    异常体系.png

    Throwable 分为Error错误和Exception异常两种,Exception又分为:RunTimeException运行时异常 和 除了RunTimeException以外的所有继承自Exception的类。RunTimeException又叫做非强制捕获型异常,什么意思呢,就像玩滑板车,你带不带护具全看心情,大不了摔一跤,并不强制要求,在运行时有可能会抛出异常,导致程序崩溃。这类异常往往继承了RunTimeException或者RunTimeException本身。除了RunTimeException的所有继承自Exception的兄弟类都属于强制捕获型异常,就好比蹦极,如果你不做一些防护措施,比如栓根绳在腰上,主办方是不会让你去送死的。这类异常在编译的时候就会告诉你要想运行此程序,请先做好异常处理。


    异常处理又分为两种:try /catch (自行处理异常) 和 Throws(抛给调用者去处理,如果调用者也不想处理,就再往上级抛,直到抛给最顶层,比如main方法等,在这一层级,如果继续往上抛,仍旧是没有问题的,交给JVM处理,但是jvm懒得理你,这异常相当于没有处理)。

    自定义异常

    自定义异常分为两种,正如上面提到的,根据继承关系来确定是运行时异常(继承自RunTimeException)还是非运行时异常(继承自Exception或者Exception的非RunTimeException的子类)。定义方式如下:

    运行时异常定义
    public class NameNullPointereException extends RuntimeException{
    
    }
    
    Paste_Image.png

    如果要想带参数,那需要重写构造方法

    public class NameNullPointereException extends RuntimeException{
     public NameEmptyException() {
       }
    
       public NameEmptyException(String s) {
           super(s);
    
       }
    }
    
    Paste_Image.png
    非运行时异常定义

    二者只是继承上的区别,继承自Exception即可。需要注意的是调用时,必throws 或者 try/catch。

    相关文章

      网友评论

          本文标题:异常

          本文链接:https://www.haomeiwen.com/subject/nwugyttx.html