Re: [概念] try catch寫法請益
: 主要的問題在於黃色那段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
11/11 12:17, 1F
OOAD 近期熱門文章
PTT數位生活區 即時熱門文章