Java异常之我见.doc
上传人:yy****24 上传时间:2024-09-10 格式:DOC 页数:2 大小:16KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

Java异常之我见.doc

Java异常之我见.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

异常处理之你所不知道的一.丢弃异常常见错误:catch捕获异常后以为e.printStackTrace()是对异常的处理,其实并不算是对异常的处理,只是方便程序调试而已,但对程序的发生异常之后的处理却木有任何交待(做错了事情没有交代成吗?显然不行。所以,同志们想办法去处理吧)。改正方法:(1)处理异常(2)重新抛出异常(3)把低级的异常转换成另一种更容易理解更有用的应用级的异常(4)不捕获异常结论一:既然捕获了异常,就要对它进行适当的处理。不要捕获异常之后又把它丢弃,不予理睬。二.不指定具体的异常常见错误:用一个catch语句捕获所以的异常如:catch(Exceptione){…}Catch的用途是:表示我们预期会出现某种异常,并希望对该异常进行处理。Catch语句应当尽量指定具体的异常类型,不推荐捕获涵盖范围太广的异常(如Exception类)。结论二:在catch语句中尽可能指定具体的异常类型,必要时使用多个catch.不要试图处理所有可能出现的异常。三.异常导致的释放资源失败常见错误:异常改变了程序正常的执行流程,导致文件、Socket、JDBC连接之类的资源没有正确的释放。finally是样好东西:不管是否出现了异常,Finally保证在try/catch/finally块结束之前,执行清理任务的代码总是有机会执行。结论三:保证所有资源都被正确释放。充分运用finally关键词。四.不说明异常的详细信息printStackTrace的堆栈跟踪功能显示出程序运行到当前类的执行流程,但只提供了一些最基本的信息,未能说明实际导致错误的原因,同时也不易解读结论四:在异常处理模块中提供适量的错误原因信息,组织错误信息使其易于理解和阅读。五.过于庞大的try块问题一些新手常常把大量的代码放入单个try块,然后再在catch语句中声明Exception,而不是分离各个可能出现异常的段落并分别捕获其异常。这种做法为分析程序抛出异常的原因带来了困难,因为一大段代码中有太多的地方可能抛出Exception.结论五:尽量减小try块的体积。六.输出数据不完整不完整的数据是Java程序的隐形杀手,考虑一下如果循环的中间抛出了异常,会发生什么事情。循环的执行当然是要被打断的,其次,catch块会执行,已经输出的数据怎么办?使用这些数据的人或设备将收到一份不完整的(因而也是错误的)数据,却得不到任何有关这份数据是否完整的提示。对于有些系统来说,数据不完整可能比系统停止运行带来更大的损失。较为理想的处置办法是向输出设备写一些信息,声明数据的不完整性;另一种可能有效的办法是,先缓冲要输出的数据,准备好全部数据之后再一次性输出。结论六:全面考虑可能出现的异常以及这些异常对执行流程的影响。