以前写程序总是很匆忙,很少注意到错误的处理流程,大不了try..catch..finally,直接抛出异常。
自己有时也会想:异常抛出真的好吗,这样做?还有异常是在方法里抛出好呢,还是在程序里抛出好呢?今天有空研究了下,解决了我的一些问题,下面写下自己的感想。
一、多个try..catch块嵌套。这样做一般有两个原因:
1、修改异常类型。有可能一种异常的出现其实是暴露了其它更深层次的问题,对于第一个异常的处理就是抛出另一个异常,让另一个catch处理它,当然异常可能在catch块中抛出。
2、在不同的地方处理不同的异常。有些异常比较严重,要退出整个循环,有些比较轻,只要进入下一个循环。在循环内部可以处理不太严重的异常,再在循环外边处理比较严重的异常。
二、异常一般是由方法中抛出,由程序来处理。毕竟异常的出现会影响到程序的执行,要考虑的问题是异常的出现会不会影响其它的代码,也就是说异常的扩大,出现异常的地方后面的代码要不要执行。所以,一般是程序处理异常。
三、异常一般都要有相应的处理程序,不能胡乱抛出,抛出时的信息也要有针对性,对技术人员和用户需要的信息是不一样的。
四、定义自己的异常类。如果打算设计需要创建其自己的异常的应用程序,建议您从exception类派生自定义异常。最初的想法是自定义异常应从 ApplicationException 类派生;但实际上,尚未找到此异常来添加有效值。