Java中有关异常处理的认识
通常在Webservice侧中,有三层调用Dao层,Service层,WS层。
1.Dao层主要是处理数据的操作(Update,Delete,Select,Add).在Dao层是不处理异常的,一般是将异常抛向Service层。
代码示例如下:抛出DataAccessException 异常
Java代码
- public int addOperationLog(Map<String, Object> paramMap)
- throws DataAccessException
- {
- return mDaoManager.update("addOperationLog", paramMap);
- }
2. Webservice通常是将异常抛给调用它的上一层。
Java代码
- public interface IUserApplySev
- {
-
-
-
-
-
-
- String addOperationLog(Map<String, Object> paramMap) throws ApplicationException;
- }
-
-
-
-
-
-
- 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) 将异常往外抛出(此种做法可以让其它层在程序出现异常的时候,可很直接的看到异常信息而定位问题)如下:
(如果将其在这侧捕获并且处理的话,在调用它的上层只会知道该操作成功与否,在最终的服务端无法获知异常的原因而难以
定位问题)---<尤其是针对分布式的系统>
Java代码
- public interface IUserApplyWs
- {
-
-
-
-
-
-
- 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);
- }
TAG: java异常处理
点击下载系统:
http://www.myeducs.cn/chaxun/index.html?go=Java中有关异常处理的认识&aa=%CB%D1%CB%F7%C2%DB%CE%C4