Java Review(三十三、异常处理----补充:断言、日志、调试)

但是这段代码会一直保留在程序中, 即使测试完毕也不会自动地删除。如果在程序中含有大量的这种检查,程序运行起来会相当慢。

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

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

assert 条件;

assert 条件:表达式;

这两种形式都会对条件进行检测, 如果结果为 false, 则抛出一个 AssertionError 异常。

在第二种形式中,表达式将被传人 AssertionError 的构造器, 并转换成一个消息字符串。

启用和禁用断言


在默认情况下, 断言被禁用。可以在运行程序时用 -enableassertions 或 -ea 选项启用:

java -enableassertions MyApp

需要注意的是, 在启用或禁用断言时不必重新编译程序。启用或禁用断言是类加载器( class loader) 的功能。当断言被禁用时, 类加载器将跳过断言代码, 因此,不会降低程序运行的速度。

也可以在某个类或整个包中使用断言, 例如:

java -ea:MyClass -eaiconi.inycompany.inylib… , MyApp

这条命令将开启 MyClass 类以及在 com.mycompany.mylib 包和它的子包中的所有类的断言。选项 -ea 将开启默认包中的所有类的断言。

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

ava -ea:… -da:MyClass MyApp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值