Re: [概念] try catch寫法請益

看板OOAD作者 (大森)時間9年前 (2014/11/11 10:03), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
: 主要的問題在於黃色那段try catch, : 在進入SetUserDataToXml,有可能會出錯,例如xml格式不對, : 所以會有一個throw,但回到主程式時, : 我把這個SetUserDataToXml,包在一個UserDataExist的驗證裡面, : 邏輯上似乎沒有問題,但是直覺上這樣包起來好像怪怪的, : : 能給我一點建議嗎? 謝謝 : 前面砍掉不重要的 SetUserDataToXml回傳執行結果物件, ReturnObj<bool>, ReturnObj有以下屬性, ReturnValue, ReturnMessage, ReturnData(這是true/false) 可取用exception那些屬性, 把它填入ReturnObj裡, ReturnData是你執行正確給它true, 當SetUserDataToXml執行後, 就看ReturnObj就知道是要繼續還是秀訊息給網頁 : ExamData.ExamData ed = new ExamData.ExamData(context); : if (ed.IsUserDataExist()) : { : try : { : ed.SetUserDataToXml(); : } : catch (Exception) : { : response.Write(ed.ErrorCode); : } : } : else : { : response.Write(ed.ErrorCode); : } : : : ExamData Class : public void SetUserDataToXml() : { : XmlDocument doc = new XmlDocument(); : try : { : doc.LoadXml(UserData); : } : catch (Exception) : { : ErrorCode = "1000"; : throw; : } : } : : -- : ‧Simple reflex agent : ‧Model-based reflex agent : ‧Goal-based agent : ‧Utility-based agent : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.249.104.105 : ※ 文章網址: http://www.ptt.cc/bbs/OOAD/M.1414985344.A.EB5.html : → AndyLeo : 我認為外部可以不用exception來接比較好 11/03 15:31 : → AndyLeo : SetUserDataToXml可以return error code來判斷 11/03 15:32 : → AndyLeo : 同時也可以包含UserDataNotExist的Error Code 11/03 15:33 : 您的意思是這樣? : ed.SetUserDataToXml(); : if(ErrorCode == 1) : { : 成功 : } : else : { : 失敗 : } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.135.186.47 ※ 文章網址: http://www.ptt.cc/bbs/OOAD/M.1415671421.A.3F0.html

11/11 12:17, , 1F
OK THX
11/11 12:17, 1F
文章代碼(AID): #1KOMvzFm (OOAD)
文章代碼(AID): #1KOMvzFm (OOAD)