首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java中有关错误处理的认识

2012-09-21 
Java中有关异常处理的认识Java中有关异常处理的认识通常在Webservice侧中,有三层调用Dao层,Service层,WS层

Java中有关异常处理的认识
Java中有关异常处理的认识
通常在Webservice侧中,有三层调用Dao层,Service层,WS层。
1.Dao层主要是处理数据的操作(Update,Delete,Select,Add).在Dao层是不处理异常的,一般是将异常抛向Service层。
    代码示例如下:抛出DataAccessException 异常

public int addOperationLog(Map<String, Object> paramMap)throws DataAccessException{   return mDaoManager.update("addOperationLog", paramMap);}


2. Webservice通常是将异常抛给调用它的上一层。
public interface IUserApplySev{    /**     * 添加操作日志服务.     * @param paramMap 操纵日志信息参数     * @throws ApplicationException 服务调用异常信息     * @return 更新数据库影响行数     */    String addOperationLog(Map<String, Object> paramMap) throws ApplicationException;}    /**     * 添加操作日志服务.     * @param paramMap 操纵日志信息参数     * @throws ApplicationException 服务调用异常信息     * @return 更新数据库影响行数     */public String addOperationLog(Map<String, Object> paramMap) throws ApplicationException{  try  {return String.valueOf(mUserApplyDao.addOperationLog(paramMap));  }  catch (DataAccessException e)   {throw new ApplicationException("添加操作日志失败.", e);  }}


 
3.在WS侧对应于在Service侧也有两种异常的处理模式.
(1) 将异常往外抛出(此种做法可以让其它层在程序出现异常的时候,可很直接的看到异常信息而定位问题)如下:
    (如果将其在这侧捕获并且处理的话,在调用它的上层只会知道该操作成功与否,在最终的服务端无法获知异常的原因而难以
    定位问题)---<尤其是针对分布式的系统>
public interface IUserApplyWs{    /**     * 添加操作日志服务.     * @param paramMap 操纵日志信息参数     * @throws ApplicationException 服务调用异常信息     * @return 更新数据库影响行数     */    String addOperationLog(Map<String, Object> paramMap) throws ApplicationException ;}public String addOperationLog(String aJsonStr) throws ApplicationException {  if ((null == aJsonStr) || ("".equals(aJsonStr)))  {   throw new ApplicationException("[SupportWS]:addOperationLog input param(aJsonStr) is null."); } Map<String, Object> paramMap = JsonUtil.jsonStringToMap(aJsonStr); if (null == paramMap) {  throw new ApplicationException("[SupportWS]:addOperationLog param paramMap is null."); } if ((null == paramMap.get(UserApplyConstants.USERID))|| ("".equals(UserApplyConstants.USERID)))  {  throw new ApplicationException("[SupportWS]:addOperationLog param USERID is null."); } if ((null == paramMap.get(UserApplyConstants.CREATEDATE))|| ("".equals(UserApplyConstants.CREATEDATE))) {  throw new ApplicationException("[SupportWS]:addOperationLog param CREATEDATE is null."); }  return mUserApplySevImpl.addOperationLog(paramMap);}

热点排行