异常

作者: 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。

相关文章

  • 异常和模块

    异常 目标 了解异常 捕获异常 异常的else 异常finally 异常的传递 自定义异常 一. 了解异常 当检测...

  • python多线程

    异常基础知识 -异常简介: 运行时错误 -异常类: 异常数据 异常名称,异常数据,异常类型 -自定义异常 clas...

  • dart 异常

    dart中的异常 异常处理 抛出异常 异常捕获

  • Java基础之异常

    Java基础之异常 目录 异常简单介绍 ThrowableErrorException 异常分类 如何处理异常异常...

  • python核心编程-错误与异常

    本章主题:什么是异常Python中的异常探测和处理异常上下文管理引发异常断言标准异常创建异常相关模块 什么是异常 ...

  • motan(RPC)系统梳理知识点

    异常分类: 业务异常(bizException) 服务异常(serviceException) 框架异常(fram...

  • 异常

    Java异常体系 异常的分类 Java的异常分为两大类:Checked异常和Runtime异常(运行时异常)。所有...

  • 从零构架个人博客网站(二)-全局异常处理

    中间件的异常 全局异常中间件全局异常监听定义异常的返回结果定义常见的异常状态开发环境 异常查看 对于异常,我们可以...

  • Node.js异常处理

    Node.js异常分类: 变量异常 函数异常 调用异常 变量异常 未定义变量 未包含对象 变量类型错误 函数异常 ...

  • python 异常

    异常 目标 异常的概念 捕获异常 异常的传递 抛出异常 01. 异常的概念 程序在运行时,如果 Python 解释...

网友评论

      本文标题:异常

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