作者yasen0220 (大森)
看板OOAD
标题Re: [概念] try catch写法请益
时间Tue Nov 11 10:03:39 2014
: 主要的问题在於黄色那段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://webptt.com/cn.aspx?n=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://webptt.com/cn.aspx?n=bbs/OOAD/M.1415671421.A.3F0.html
1F:→ GoalBased : OK THX 11/11 12:17