zoukankan      html  css  js  c++  java
  • Java的异常

    Java语言规范将派生于Error类或RuntimeException类的所有异常称为非受查 ( unchecked) 异常, 所有其他的异常称为受查(checked) 异常。

    Error 类层次结构描述了 Java 运行时系统的内部错误和资源耗尽错误。 应用程序不应该抛出这种类型的对象。

    在自己编写方法时, 不必将所有可能抛出的异常都进行声明。至于什么时候需要在方法 中用 throws 子句声明异常, 什么异常必须使用 throws 子句声明, 需要记住在遇到下面 4 种 情况时应该抛出异常:

    1 ) 调用一个抛出受査异常的方法, 例如, FilelnputStream 构造器。

    2 ) 程序运行过程中发现错误, 并且利用 throw 语句抛出一个受查异常(下一节将详细地 介绍 throw 语句 )。

    3 ) 程序出现错误, 例如, a[- l ]= 0 会抛出一个 ArraylndexOutOffloundsException 这样的 非受查异常。

    4 ) Java 虚拟机和运行时库出现的内部错误。

    如果出现前两种情况之一, 则必须告诉调用这个方法的程序员有可能抛出异常。 为什 么? 因为任何一个抛出异常的方法都有可能是一个死亡陷阱。如果没有处理器捕获这个异 常, 当前执行的线程就会结束。

    对于那些可能被他人使用的Java方法,应该根据异常规范(exceptionspecification), 在方法的首部声明这个方法可能抛出的异常。

    class HyAnimation {
         public Image loadlmage(String s) throws IOException {
        } 
    }

    也不应该声明从 RuntimeException 继承的那些非受查异常。这些运行时错误完全在我们的控制之下。

        class HyAnimation {
            void drawlmage(int i) throws ArrayIndexOutOfBoundsException
            {
            }
        }

    总之, 一个方法必须声明所有可能抛出的受查异常, 而非受查异常要么不可控制(Error), 要么就应该避免发生(RuntimeException)。

  • 相关阅读:
    centos7安装nginx和php7启动脚本
    centos7 安装nginx遇到的坑
    php7.2 编译遇到的坑
    yum源更新
    redis
    nginx日志分割
    Docker部署LNMP完整教程
    浅谈JavaScript词法分析步骤
    PHP面向对象中的重要知识点(一)
    Mysql精华版(命令大全)
  • 原文地址:https://www.cnblogs.com/fengliang/p/14139369.html
Copyright © 2011-2022 走看看