java如何捕获断言异常_java学习笔记之异常、断言

异常、断言

一、异常分类

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

。、

732d0c19e82847ad93031c2cd214e096.png

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禁用某个特定类和包的断言。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值