日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java抛异常 代替返回_请问业务层方法是抛出一个异常好还是返回一个结果更好...

發布時間:2024/4/13 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java抛异常 代替返回_请问业务层方法是抛出一个异常好还是返回一个结果更好... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

@Override

public Response checkUserToken(long uid, String accessToken, String deviceToken){

Response response = new Response();

//TODO 先到session中找

try {

UserLogin userLogin = userLoginDao.getUserLoginByUid(uid);

if(userLogin != null) {

if(userLogin.getStatus() !=-1){

if(accessToken == userLogin.getAccessToken() && deviceToken == userLogin.getDeviceToken()){

//驗證正確, 生成新的accessToken

String newAccessToken = regenerateAccessToken(uid);

//保存到數據庫

String sql = "UPDATE " + UserLoginDao.DEFAULT_TABLE_NAME + " SET " +

"accessToken=?, online=?";

Object[] args = new Object[]{newAccessToken, 1};

int[] argTypes = new int[]{Types.VARCHAR, Types.TINYINT};

userLoginDao.executeUpdate(sql, args, argTypes);

response.setRc(Rc.RC_SUCCESS);

response.setData(new LoginDTO(uid, accessToken, deviceToken));

}else{

response.setRc(Rc.RC_USER_ACCESS_ERROR);

response.setErrMsg("驗證失敗,請重新登陸");

}

}else{

response.setRc(Rc.RC_USER_STATUS);

response.setErrMsg("賬號存在風險,已暫時鎖定");

}

}else{

response.setRc(Rc.RC_USER_INVALID);

response.setErrMsg("不合法用戶請求");

}

}catch (Exception e){

Yin.logError(e, getClass());

response.setRc(Rc.RC_DB_ERROR);

response.setErrMsg("數據庫異常");

}

return response;

}

這是一個業務層方法, 里面我直接try catch捕獲了dao層的可能的異常. 并作為一個對象返回.

我的考慮是:這么做的在action層就無需try, catch了,因為統一通過Response返回結果

我看有的人是封裝了一個業務層的異常, 返回給action

這兩種方法哪個好些?為什么?

另外, 如果是封裝業務層的異常,這個按照什么原則分的呢? 比如 前臺傳個id, 如果這個id沒找到,難道我要構造個UserNotFoundException, 而不是在Response對象里加一個status?

小弟學程序至今, 一直覺得自己寫的代碼很糟糕, 最近開始看代碼大全這本書, 覺得受益匪淺, 并重新修改了代碼.麻煩各位前輩解惑的同時, 能指點一下如上這段代碼. 請指教

總結

以上是生活随笔為你收集整理的java抛异常 代替返回_请问业务层方法是抛出一个异常好还是返回一个结果更好...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。