• 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/ 大家踊跃拍砖共同成长,拍砖的同时记得附上意见或者建议。!!谢谢 谢谢
  • 相关阅读:
    一次失败的架构评审会议
    在搜索引擎面前经验是如此苍白
    中层难当
    js调试的小工具
    用js小类库获取浏览器的高度和宽度信息
    js过滤HTML标签以及 
    语句
    .NET中回调事件的简单分析
    javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
    JavaScript中的16进制字符(改进)
  • 原文地址:https://www.cnblogs.com/tianjing/p/2574832.html
Copyright © 2020-2023  润新知