1. 异常与传统处理机制的差异
Java异常机制是对传统通过返回值来返回错误的升级,相比传统返回代码的方式,有如下好处:
1. 异常携带了更多的信息,便于分析,比如携带了调用位置信息,错误详细信息
2. 可以大量节约代码
比如传统程序执行一个SQL后,就需要判断结果是否正确,多少SQL就可能有多少判断,而异常机制,只需要在一个处理外面截获数据库异常即可
3. 可以强制要求判断,传统程序,函数返回-1 ,-2, -3 但是不一定程序员都记得判断,而异常 throw SQLException throw xxxException ,抛出多少种,外面就需要处理多少种
4. 传统的返回1,2,3,4很难记忆涵义,而异常就类似了枚举方式,可以让编程人员方便记忆,使用
5. 异常可以一层一层不处理,直接抛出到最上面,而返回值的必须一层一层判断,再返回,麻烦
2. 我总结的在项目中如何使用异常
1. 在J2EE这样的项目中,项目程序分层处理,各个层次发生错误,都需要记录日志以及根据需要在用户页面显示返回,因此,通过异常的处理,来实现错误流的控制
2. 如果在我们的程序中,直接使用底层异常,比如一个函数 throws SQLException,那么,如果今后底层增加了其他处理,需要抛出其他类似于SQLException的异常,势必,函数定义需要修改,这样一来,所有用到这个函数的地方都牵涉到新异常的截获或者继续抛出,这样的修改成本很高
3. 因为以上原因,在项目中,我认为最好建立自己的异常类,继承自Exception,各个本项目内的函数,需要的话,就抛出MyException,而函数内部需要对截获的各种异常翻译为MyExcption,可以直接用构造函数,将各种异常构造为MyExption
4. 在最上层,即struts的Action里面,截获MyExption,根据需要来返回显示或者记录日志等