• java学习笔记之异常、断言


    异常、断言

    一、异常分类

    异常对象都是派生于Throwable类的一个实例。

    。、

    Error类层次结构描述了java运行时系统的内部错误和资源耗尽错误。这种情况很少出现。

    需要关注的是Exception层次结构。下面又划分了两个层次。由程序错误导致的异常属Runtime Exception;剩下的属于其他异常。

       派生于RuntimeException的异常包含下面几种情况:

    •    错误的类型转换。
    •    数组访问越界。
    •    访问null指针。

       不是派生于RuntimeException的异常包括:

    •    试图在文件尾部后面读取数据。
    •    试图打开一个不存在的文件。
    •    试图根据给定的字符串查找Class对象,而这个字符串表示的类并不存在。

    Java语言规范将派生于Error类或Runtime Exception类的所有异常成为非受查异常,所有其他的异常称为受查异常

    二、抛出异常

    需要记住在遇到下面4种情况下应该抛出异常;

    (1)   调用一个抛出受查异常的方法

    (2)   程序运行过程中发现错误,并且利用throw语句抛出一个受查异常

    (3)   程序出现错误

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

    对于在程序中可能出现的受查异常,需要在方法的首部声明这个方法可能抛出的异常,如果一个方法有可能抛出多个受查异常类型,那么就必须在方法的首部列出所有的异常类。每个异常类之间用逗号隔开。不需要声明Java的内部错误,即从Error继承的错误也不声明从Runtime Exception继承的那些非受查异常

    对于一个已经存在的异常类抛出异常的步骤:

    (1)   找到一个合适的异常类。

    (2)   创建这个类的一个对象。

    (3)   将对象抛出

    也可以自己创建一个异常类。

    三、捕获异常

      想要捕获异常,必须设置try/catch语句块。通常,应该捕获那些知道如何处理的异常,而将那些不知道怎么处理的异常继续传递(在方法的首部添加一个throws说明符)。

      如果要捕获多个异常,可以编写多个catch语句,也可以在一个catch语句中捕获多个异常类型。

    使用异常机制的技巧:

    1、 异常处理不能代替简单的测试。

    2、 不要过分的细化异常。

    3、 利用异常层次结构。

    4、 不要压制异常。

    5、 在检测错误时,“苛刻”要比放任更好

    6、 不要羞于传递异常。

    四、断言

    断言机制允许在测试期间向代码中插入一些检查语句。当代码发布时,这些插入语句将会被自动移走。

    Java语言引入了关键字assert。这个关键字有两种形式;

    • assert 条件;
    • assert 条件:表达式;

    如果检查的条件是false,则抛出一个AssertionError异常。在第二种形式中,表达式将被传入AssertionError的构造器,并转换成一个消息字符串。

    在默认情况下,断言被禁用。可以在运行程序时用 –enableassertions或 –ea选项开启:java –enableassertions MyApp。也可以在某个类或整个包中使用断言:

    例如 java –ea:MyClass –ea:com.mycompany.mylib…MyApp

    也可以用选项 =disableassertions或 –da禁用某个特定类和包的断言。


  • 相关阅读:
    Cesium实现键盘控制镜头效果
    怎么判断一个服务器的服务器性能
    2T以上的盘怎么分区, 利用parted创建 linuxTB硬盘GPT分区
    解压和压缩的简单用法
    关于windows修改远程登录端口的问题
    tomcat启动非常慢;连接oracle数据库失败,jdbc错误日志提示connection reset;测试主机间网络互通及数据库端口都正常
    docker的安装和基础使用
    Centos7 时区的设置
    Day24 中间件 自定义分页 ModelForm 序列化 缓存 信号
    Day22 博客园的构建
  • 原文地址:https://www.cnblogs.com/D-LW/p/8489686.html
Copyright © 2020-2023  润新知