美文网首页程序员
异常相关概念

异常相关概念

作者: AmorFatiYJ | 来源:发表于2017-12-22 11:53 被阅读95次
  • [x] Error 和 Exception有什么区别
  • [x] 什么是受检查的异常,什么是运行时异常
    运行时异常与一般异常有何异同
  • [ ] 什么是异常链
  • [x] throw 和 throws 有什么区别?
  • [ ] 简述一个你最常见到的runtime exception(运行时异常)

一、Error和Exception有什么区别?

联系

  • Error和Exception都继承自Throwable,RuntimeException继承自Exception。Throwable从Object直接继承而来,并且实现了Serializable接口。

  • Error和RuntimeException及其子类称为未检查异常(Unchecked Exception),其他异常称为受检查异常(Checked Exception)。

区别:

  • Error用于标记严重错误,一般是指与虚拟机相关的问题,如系统崩溃、内存空间不足、方法调用栈溢出等。如java.lang.StackOverFlowError和java.long.OutOfMemoryError。
    这类错误导致应用程序中断,程序不必处理,建议让程序终止。

  • Exception类表示程序可以处理的异常,可以捕获且可能恢复。

二、运行时异常和受检查的异常

Exception又分为运行时异常(Runtime Exceptin)和受检查的异常(Checked Exception)。

  • RuntimeException: 运行时异常是因为程序员执行了错误操作,Java编译器不会去检查。这类异常即使没有try/catch捕获,也没用throws抛出,编译还是会通过。如除数为零的ArithmeticException、错误的类型转换、数组越界和试图访问空指针等。

  • 受检查的异常:这类异常一般是应用环境中出现的外部错误,如果没有try/catch,也没有throws抛出,编译不会通过。如文件找不到、试图从文件尾后读取数据等。

三、什么是异常链?

异常链是一种面向对象编程技术,指将捕获的异常包装进一个新的异常并重新抛出的异常处理方式。该技术大多用于将“受检查异常”(checked exception)封装成为“非受检查异常”(unchecked exception)或者RuntimeException。

如果因为异常决定要抛出一个新的异常,一定要包含原有的异常,这样,处理程序才可以通过getCause()和initCause()方法来访问异常最终的根源。

四、throw和throws的区别

用户程序自定义的异常和应用程序特定的异常,必须借助于throw和throws语句来定义抛出异常。

  • throw是语句抛出异常,用在方法体内,抛出的是具体异常的实例,由方法体内的语句处理。
  • throws在方法的声明中抛出异常,用在方法声明后面,抛出的是可能出现的异常,自己不去处理,由方法的调用者处理。throw可以中断程序运行,因此可以用来代替return,最常见的例子是用throw在一个空方法中需要return的地方抛出UnSupportedOperationException。
private static void show() {
        throw new UnsupportedOperationException("Not yet implemented");
    }

参考资料

Java的Exception和Error面试题

相关文章

  • 异常相关概念

    [x] Error 和 Exception有什么区别[x] 什么是受检查的异常,什么是运行时异常运行时异常与一般异...

  • 异常相关

    1、异常体系error / Exception 1)运用java异常处理机制a. try ... catch语句b...

  • 肿瘤分析数据挖掘及信息解读

    肿瘤基础 特点: 疾病,无限增殖 基因相关 细胞进化过程中发展异常,突变积累 概念: germline mutat...

  • Python 面向对象 8: 异常

    一、内容总览 1.1、异常的概念 1.2、捕获异常 1.3、异常的传递 1.4、抛出异常 二、异常的概念 2.1、...

  • python 异常

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

  • Python异常处理

    本节课纲: 异常的概念 捕获异常 异常的传递 抛出raise异常 自定义异常 一、异常的概念 程序在运行时,如果 ...

  • python 异常

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

  • python中OOP的异常

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

  • 异常

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

  • JAVA面试50讲之1:Exception底层原理是什么?

    目录 异常的概念 异常的使用 异常的原理 Error与Exception的区别 使用建议 一、异常的概念 java...

网友评论

    本文标题:异常相关概念

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