一、不要捕获Java类库中定义的继承自 RuntimeException
的运行时异常类,比如空指针、比如数组越界
二、try-catch 的用法,catch时,应该分清楚稳定代码和非稳定代码。注意对异常的细化
三、异常捕获了,就要进行相应的处理。或者可以将异常进行上抛,交给上层代码进行处理。
四、异常和事务:
-
有
try
块放到了事务代码中,catch
异常后,如果需要回滚事务,一定要注意手动回滚事务。 -
在有事务的代码中,
catch
异常后,做描述异常等处理后,如果需要事务生效,请把异常继续抛出
五、异常和finally: 对IO
流和资源做操作,必须逐一关闭IO
流和资源对象(从里层到外层),有异常也要做处理。比如socket创建链接,数据库连接等,要记得关闭操作。 getOutStream等,都要关闭,不然会造成内存溢出现象。