解决方案 »

  1.   

    比如说,同样是一套类库,放到手机端它可能就需要“振动一下”然后调用手机的模态对话框;放到类似 asp.net 也页面程序里就需要向当前页面动态插入 javascript 脚本并且处理提示之后的回发;放到 asp.net ashx 这类程序就需要给出一个 http 错误码;放到 wpf 程序可能就需要调用windows notifyicon 气泡程序以及一个 ErrorWindow 窗体;放到其它类型的程序有其它的各种表现形式.......在不应该纠结的层面去纠结“使异常更友好”其实根本是成事不足的。
      

  2.   

     那就是把数据层捕捉到的异常往上抛吗?没有开发过大型的软件系统,没有经验,软件架构什么都不是很清楚,有时候会比较以后,这个异常倒地是抛上去,还是直接message.show掉..
      

  3.   

    你指的异常处理是什么样的处理?写日志还是其他?如果是写日志,看你是写到数据库还是txt,不同方式处理异常的地方有所区别。提示是form那边的事情,你可以在controllor trycatch写日之后,返回一个结果,结果内容包括此次操作是否成功,失败的话,回传个代码,form那边根据代码匹配对应的提示信息进行提示。
      

  4.   

    这个异常倒地是抛上去,还是直接message.show掉
    怎么可能message.show,如果是网站,服务,控制台,你show给谁看
    如果是多线程同时执行,同时都连接不上,那你难道show一大堆窗体出来捣乱?
    显示就应该UI层去处理,DAL层不要管如何显示你其实应该纠结的是到底在catch里捕获异常后是直接throw出去,还是增加一些内容再throw出去,还是throw一个自定义故障号,还是不throw而在返回值的地方返回错误信息.
      

  5.   

    楼上说的对。目测楼主是想增加点内容在输出,或者说整理后输出个比较容易理解的提示。
    catch throw的话,整个具体的调用过程所有方法,全部是throw,我觉得应该在你调用的地方,或者调用的接口内部处理。处理的部分独立出来就完事了。
      

  6.   

    catch里记录log,便于跟踪处理。
    给客户show出来的是通俗易懂的提示,你给客户看一堆Exception,客户也看不懂。