zoukankan      html  css  js  c++  java
  • c# 异常 的 异想

    这几天我在琢磨异常的事情。
    1、如何正确捕获异常?
    2、如何使用异常?
     
    缘由:
    我有时看framework的源码,郁闷之极,几乎所有函数内都有异常。
    而我之前开发项目时,异常是或者说黄页是高等级BUG。
    后来在开发的时候经常写这种格式的函数 bool A (输入参数,out 输出参数,out String 错误信息)或者bool A (输入参数,out String 错误信息)
    用了一段时间以后 极度郁闷,每个函数内都会有异常除了判断外你的还得告诉用户哪里错了。但是写这种格式函数既不美观(我通常形容写代码如果写作文)又不实用,每次还得对输出参数初始化,增加了代码量不说还烦。
     
    所以我想到一个问题,凭啥微软能用异常,我不能用? 异常是最好的错误提示。
     
    环境分析:
    1、公共模块 环境
    这种环境下我们不知道写出来的程序集哪个项目会用到,所以我觉得使用FCL内的异常类型比较好。
     
    2、具体项目 环境
     这种环境下,涉及到业务性的场合,你得告诉用户他的错误才行,比如用户名格式不对等等。(也许有人会说脚本验证就行了,何必后台验证和显示有好错误信息,我的回答是,作为服务端永远不要相信客户端(IE,C/S)传来的数据必须验证。)
     
    我们可以先定义一个自定义异常,在异常内可以写错误日志。
    1、在表现层中 截获自定义异常,不截获Exception(没有合理的理由绝不捕获该异常),
    2、对于业务函数则统一抛出自定义函数如:new CustomException(“具体错误内容”); 或者new CustomException(Enum.Error);(枚举或者其他类型代替字符串有利于多语言支持)
            这种方式下的代码就有点意思了
            void A(String pMessage)
            {
                if(null==pMessage)
                {
                    //throw new CustomException("error:pMessage is null");
                    throw new CustomException("您没有输入信息,请重新输入");
                }
            counsel.WriteLine(pMessage);
            }




    我的开源的地址https://github.com/tianjing/ 大家踊跃拍砖共同成长,拍砖的同时记得附上意见或者建议。!!谢谢 谢谢
  • 相关阅读:
    Windows Server 2003 SP2(32位) 中文版 下载地址 光盘整合方法
    用Recycle()方法对Java对象的重要性
    Lotus中千奇百怪的 $$
    Developing a simple application using steps "User Decision" and "Mail"(1) 沧海
    沟通中的情绪管理(演讲稿) 沧海
    人只有在压力之下,才可能成功,没做一件事,都必须成功,不许言败 沧海
    什么是IDOC,以及IDOC的步骤 沧海
    VS2008 Professional Edition CHS中的deffactory.dat读取错误 沧海
    Including custom text in the step "User Decision" 沧海
    SAP Upgrade Strategy 沧海
  • 原文地址:https://www.cnblogs.com/tianjing/p/2574832.html
Copyright © 2011-2022 走看看