章节中遇到的问题(二)

章节中遇到的问题(二)



前言

(1)check /uncheck exception
(2)行为等价性与观察等价性
(3)频繁出现的名词:黑盒/白盒


一、checked /unchecked exception

首先需要明确的一点:这里的动作主体为编译器,客体是要实现的代码。
这意味着checked exception是需要经过编译器的静态检查的
要能让其通过check它必须被显式捕获或传递
主要是通过以下两种方式:
(先列举一个错误即不能通过编译的情况)

public static void main (string args[]){
...
throw new xxxException();//checked类型
...
}

(1)(外)方法声明时就捕获异常:

public static void main (string args[])throws xxxException{
...
throw new xxxException();//checked类型
...
}

(2)(内)方法内部try-catch-final捕获异常:

public static void main (string args[]){
try{
throw new xxxException();//checked类型
...}catch(xxxException e){
e.printStacktrace();}
finally{
...
}

其次是不能够用上述的方法捕获unchecked exception
首先是对其捕获后可能并不能够做出有用的更改;其次可能这是在主动掩盖代码内部实现的bug,这是不被提倡的;

二、行为等价性与观察等价性

1.行为等价性

这里一般满足情况即为引用的等价(比如基本数据类型的等价);
在对象的等价性中,特别是在可变的对象中才会提及行为等价性,因为正常情况不可变对象中不会存在更改其内部表示的方法;
而对于可变的对象,为了防止调用等价时bug的出现,则默认为引用的相同即可

2.观察等价性

这是针对于不可变对象的等价性做出的要求
一般涉及内部属性的相等


三.频繁出现的名词:黑盒/白盒

(1)测试

  1. 黑盒测试:常见应用既是对程序的Junit测试,只关注实现的输入输出的正确性;

  2. 白盒测试:关注具体的代码,比如具体的语句是否被执行,并且测试执行结果的准确性;
    (2)框架

  3. 黑盒框架:并不知道ADT内部的具体实现,对其应用表现为:delegation

  4. 白盒框架:对内部代码实现有具体的了解,在其基础上进行增加,应用表现为:inherition

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值