2006-10-02

Exception

看了一天的code,发现以前code inspection的目的还是没有完全达到,很多code还是写得很难理解。当时只是指出问题所在,并没有在事后检查是否修改。并且,当时由于很多新员工,这些code inspection meeting更多是编程教学,希望能够举一反三,现在看来没有完全达到目标,以后得继续努力。

例如:有人在一个方法中想返回两个返回值,一个返回值是对象,另一个是整型,于是便将整型设置到对象的某个域中,粗鲁地修改了该域的本意,以后会让维护的人以头戗键盘。

另外一个普遍的问题是方法的返回值代表了太多的含义,如查询价格的方法返回值定义了“该业务不存在”、“数据库操作错误”等的异常情况返回值。导致方法调用处理复杂。这地方应该直接抛出Exception,后继处理Exception就直观多了。项目开始没有明确定义什么时候用Exception,什么时候用返回值,下次得定个明确的规则:

1)正常情况用返回值,如价格查询只返回价格,只要能返回,一定是合法的价格。
2)异常情况抛异常,如业务不存在,抛业务不存在的异常。

没有评论: