zoukankan      html  css  js  c++  java
  • 检查型异常和非检查型异常——Java

    检查型异常和非检查型异常——Java

    Java语言规范将派生于Error类或RuntimeExceprion类的所有异常称为非检查型(unchecked)异常,所有其他的异常称为检查型(checked)异常。这是个很有用的术语。
    Java中的异常类型分布:
    在这里插入图片描述

    但是,单单这样理解有些困难,我查了一些资料,用一些简单的语言来解释它们。

    检查型异常

    检查型异常,简单来说就是在现实中无法避免的,我们在设计程序时无法预知的异常抛出。例如:读取一个文件的内容。如果这个文件不存在或者程序没有读取权限时,就会抛出一个异常。我们必须要用throws声明它会出现的异常类型,或者用try...catch来捕获异常,并指明出现错误时要执行的操作。例如:

    1. 试图超越文件末尾继续读取数据;
    2. 试图打开一个不存在的文件;
    3. 试图根据给定的字符串查找 Class 对象,而这个字符串表示的类并不存在。

    这类检查型异常必须要在代码中声明出来,它是不可避免和预知的。如果没有声明,集成开发环境IDE将会报错!它会帮我们检查,故称 检查型异常

    这类异常我们必须要解决。

    非检查型异常

    非检查型异常,就是在代码实现阶段就可以预知和避免的一些异常,例如从 RuntimeExcrption类Error类 中继承的那些非检查型异常,RuntimeExcrption类包括:

    1. 错误的强制类型转换;
    2. 数组访问越界;
    3. 访问null指针。

    这些异常不需要在代码中生命,IDE也不会报错指出。这些异常我们完全有能力去避免和预知,IED不会帮我们检查这其中的错误!故称为 非检查型异常

    同时,我们也不需要声明Java的内部错误,即从 Error类 继承的异常。任何程序代码都可能抛出那样的异常,而我们对此完全无法控制。

    结语

    这就是对在Java中,检查型异常和非检查型异常的简单浅显理解,希望对Java的初学者有所帮助。

  • 相关阅读:
    监控代码运行时长 -- StopWatch用法例程
    验证码处理算法(一)
    Linux下安装JDK及相关配置
    JAVA爬虫---验证码识别技术(一)
    JAVA4大线程池
    海量数据去重(上亿数据去重)
    python协程与异步协程
    解决WinSCP连接虚拟机
    生产消费者模式与python+redis实例运用(中级篇)
    生产消费者模式与python+redis实例运用(基础篇)
  • 原文地址:https://www.cnblogs.com/relaxx/p/12913980.html
Copyright © 2011-2022 走看看