1、在出现异常的方法内捕获并处理掉异常,该方法的调用者将不能再次捕获该异常。
2、在方法的签名中声明抛出该异常,将该异常完全交给方法调用者处理。
3、catch和throw同时使用。
public void insert(Folder folder){ Connection con = null; PreparedStatement ps = null; try { con = DBUtil.getCon(); ps = con.prepareStatement("insert into t_folder(FOLDER_ID,FOLDER_CODE,FOLDER_NAME,FOLDER_YEAR) values(?,?,?,?)"); ps.setString(1, folder.getFolderId()); ps.setString(2, folder.getFolderCode()); ps.setString(3, folder.getFolderName()); ps.setString(4, folder.getFolderYear()); ps.executeUpdate(); } catch (Exception e) { //日志记录详细详细,便于管理员处理。 log.error("执行保存操作出错!",e); //包装后的异常重新抛出,一般做为对用户的提示。 throw new RuntimeException("访问数据库出现异常!"); } finally { //关闭资源 DBUtil.closeStatement(ps); DBUtil.closeConnectionIfAutoCommit(con); } }