to
void withdraw(int amount) throws BalanceException {
if (amount > _balance)
throw new BalanceException();
_balance -= amount;
}
动机
当程序被链接的时候,linker将会面对两个相同的time::show()拷贝,于是函数重定义的连接错误发生。
system32目录查找libeay32,然后放到system32里面这个是因为某些程序用隐含的方式调用了libeay32.dll(很多程序的目录中都有.dll.dll,就去找一个比较新的libeay32,但如果比较旧就会让其它需要这个文件的程序出错.dll放到system32目录中。
(2)给这个irp一个完成函数,完成函数的含义是:如果这个irp完成了,系统会回调这个函数。
这份报告包含出错的程序名称,错误发生日期和时间,以及程序版本等。
面对一个调用者可以预先检查的条件,你抛出了一个异常
修改调用者,使它在调用函数之前先做检查
double getValueForPeriod (int periodNumber) {
try {
return _values[periodNumber];
} catch (ArrayIndexOutOfBoundsException e) {
return 0;
}
}
to
double getValueForPeriod (int periodNumber) {
if (periodNumber >= _values.length)
return 0;
return _values[periodNumber];
}
动机
不要过度使用异常,它们应该被用在检查异常上
不要用它来代替条件测试
检查异常错误条件在调用方法之前
两个子类拥有相同的字段
将该字段移到超类中
class Salesman extends Employee{
String name;
}
class Engineer extends Employee{
String name;
}
to
class Employee{
String name;
}
class Salesman extends Employee{}
class Engineer extends Employee{}
动机
删除重复的代码
允许将子类的行为转移到父类中
你在各个子类中拥有一些构造函数,他们的本体几乎完全一致
在超类中新建一个构造函数,并在子类构造函数中调用它
class Salesman extends Employee{
String getName();
}
class Engineer extends Employee{
String getName();
}
to
class Employee{
String getName();
}
class Salesman extends Employee{}
class Engineer extends Employee{}
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-89441-22.html
或许会误射
常规战是打不赢老美的