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的初学者有所帮助。

  • 相关阅读:
    hdu 1015 Safecracker 暴力搜索
    hdu 1239 Calling Extraterrestrial Intelligence Again 枚举
    hdu 3747 Download 菜鸟杯
    hdu 3744 A Runing Game 菜鸟杯
    Request.QueryString 使用时候应该注意的地方。
    图片 上一张 下一张 链接效果
    ASP.NET 输出缓存的移除
    RSS 消费
    RSS 订阅功能的实现
    创建型模式单件模式(1)
  • 原文地址:https://www.cnblogs.com/relaxx/p/12913980.html
Copyright © 2011-2022 走看看