任何程序即使经过百般检查、测试,总会有这样那样出乎意料的问题。
在java中把这些问题归结为两类,错误和异常,
错误是指程序遇到了很大的、几乎不可能自己修复的严重问题。
异常则是由于程序设计不当或者运行环境变更而导致程序无法正常运行。
相对错误来说,异常的严重性要小很多。
对于用户,是不关心一个软件的错误和异常的,因为在他们的角度来看,错误和异常都是不能容忍的;对于程序员,异常是不可避免的,程序员要做的是,在发生这些异常时,改怎么处理以避免发生小小的异常而导致程序崩溃,同时在发生异常是给用户友好的提示(用户是上帝)。
java中的异常分为两类:编译时异常,和运行时异常
java中有规定,编译异常必须处理,当然我们可以选择抛出,但是这样只会给上级程序带来麻烦,因为这些异常重要处理的,为什么在出现的时候不处理呢?运行时异常可以不进行处理,因此往往被用于把编译时异常转换为运行时异常抛出。
概括起来异常需要注意几点:
1、编译异常必须处理,运行异常选择处理
2、子类不能比父类抛出更多异常
在实际的编程中,对于异常应该这样处理:
1、如果异常不作为返回值时,那么统一把编译异常转换成运行时异常后再抛出,但是需要注意在后台打印异常信息(这个对于调试很重要)
2、程序分层设计时,应该自定义每一层的异常类,以便于调试找错
3、能够处理,就不要抛出,应为这样有可能跑到用户那里(死定了)