规范性
- 通常代码都不超过50行,重要的是形成清晰的思路,写的清晰
- 当代码的逻辑比较复杂时候,适当的缩进,注释,可以体改可读性
- 用完整的英文单词组合来表示变量和函数,让别人一眼看清意图
完整性
- 普通测试用例,考虑全面,比如把字符串转化为整数的例子,考虑正数,0,负数,充分发散思维,比如求最大的n位数,考虑int溢出,long溢出,以及表示大数,用数组还是字符串
- 边界值的测试用例,递归和循环的终止条件,以及数据类型的(int等)的最大最小值
- 负面测试,就是各种错误的值,以及空值,非法输入,字符串转化为整数,“hjjjjjk”不包含整数
代码的错误处理
- 返回值的方式,这种方式不同的返回值具有不同的含义,比如返回0正确,返回其他的值不争取都有含义,缺点是函数的计算结果不能直接赋值其他的变量或者当做参数
- 全局变量,经常会设置一个布尔值,缺点是容易忽略错误的检查
- 抛出异常
简述java的异常
讨论一个具体例子。假设程序中需要验证用户输入的表示年龄的数据必须是正整数值。
异常的定义代码
public class NegativeAgeException extends Exception {
//或者:extends Throwable
public NegativeAgeException() {}
public NegativeAgeException(String message) {
super(message);
}
}
异常的使用代码
try{
String ageString = JOptionPane.showInputDialog("Enter your age: ");
if (Integer.parseInt(ageString) < 0)
throw new NegativeAgeException("Please enter a positive age");
else
JOptionPane.showMessageDialog(null, ageString, "Age", 1);
}
catch(NegativeAgeException e){
System.out.println(e);
}
或者,可以创建一个缺省对象,然后在catch中打印具体信息,如:
throw new NegativeAgeException();
...
catch (NegativeAgeException e) {
System.out.println("Please enter a positive age");
参考剑指0ffer和一下博客
http://yqgao.blog.51cto.com/773490/174767/