• C#检验参数合法性公用方法


    #region 检验参数合法性,数值类型不小于0,引用类型不能为null,否则抛出异常
            /// <summary>
            /// 检验参数合法性,数值类型不小于0,引用类型不能为null,否则抛出异常
            /// </summary>
            /// <param name="arg">待检参数</param>
            /// <param name="argName">待检参数名称</param>
            /// <param name="canZero">数值类型是否可以为0</param>
            public static bool CheckArgument(object arg, string argName, bool canZero = false)
            {
                ILog log = LogManager.GetLogger(String.Format("CheckArgument_{0}", argName));
                try
                {
                    if (arg == null)
                    {
                        ArgumentNullException argumentNullException = new ArgumentNullException(argName);
                        throw new Exception(String.Format("参数{0}为空,引发异常", argName), argumentNullException);
                    }
    
                    Type t = arg.GetType();
                    if (t.IsValueType && t.IsNumeric())
                    {
                        bool flag = !canZero ? arg.CastTo(0.0) <= 0.0 : arg.CastTo(0.0) < 0.0;
                        if (flag)
                        {
                            ArgumentOutOfRangeException argumentOutOfRangeException = new ArgumentOutOfRangeException(argName);
                            throw new Exception(String.Format("参数{0}不在有效范围内,引发异常", argName), argumentOutOfRangeException);
                        }
                    }
                    if (t == typeof(Guid) && (Guid)arg == Guid.Empty)
                    {
                        ArgumentNullException argumentNullException1 = new ArgumentNullException(argName);
                        throw new Exception(String.Format("参数{0}为空引发GUID异常", argName), argumentNullException1);
                    }
    
                    return true;
                }
                catch (Exception exception)
                {
                    log.Error("检验参数合法性", exception);
                }
                return false;
            }
            #endregion
    

      

  • 相关阅读:
    Pandas基本命令
    python——内建模块instance的学习
    pyhton——logging日志模块的学习
    mongoDB集群的搭建
    goahead(web服务器)分析
    2019-9
    cmake
    mqtt+htttp+websocket
    u-boot中filesize环境变量【转载】
    cppcheck下载及使用
  • 原文地址:https://www.cnblogs.com/zhao-yi/p/6237072.html
Copyright © 2020-2023  润新知