gpt4 book ai didi

c# - 标准化验证和错误检查C#

转载 作者:行者123 更新时间:2023-12-03 07:59:16 24 4
gpt4 key购买 nike

我目前正在开发一个项目,该项目可以处理很多类型的输入,这些输入都有一些约束,例如double介于0和1之间。我正在考虑通过使用一个类来以一种标准化的方式验证此输入,我将调用该类来验证输入并如果输入错误,则会将结果抛出到日志文件或抛出异常。

tl; dr:是否存在一种很好的方法来标准化整个使用日志文件的程序的验证。

例:

        public void AddTimes(double time1, double time2)
{
if (time1 < 0)
{
ErrorManager.Validation_MustBeNonNegative(ErrorManager.GetName(new { time1 }), time1.ToString());
}
else if (time2 <= 0)
{
ErrorManager.Validation_MustBeNonNegativeNonZero(ErrorManager.GetName(new { time1 }), time2.ToString());
}
}

最佳答案

您可以使用log4net从您的自定义方法进行日志记录。配置和记录到log4net是SO上有据可查的主题,因此您应该优化问题并再次搜索。

为了验证您的值(value),您需要一种表达有效范围的方法。 Microsoft在其框架中包括一些范围检查功能,但是您可以轻松地自己滚动:

public static void AssertTimesAreValid(double time1, double time2)
{
if (time1 < 0)
{
ErrorManager.Validation_MustBeNonNegative(ErrorManager.GetName(new { time1 }), time1.ToString());
throw new ArgumentException("Times are not far enough apart.");
}
else if (time2 <= 0)
{
ErrorManager.Validation_MustBeNonNegativeNonZero(ErrorManager.GetName(new { time1 }), time2.ToString());
throw new ArgumentException("Times are not far enough apart.");
}
}

public void AddTimes(double time1, double time2)
{
AssertTimesAreValid(time1, time2)

// Do your work now
}

您的ErrorManager将需要进行日志记录。

关于c# - 标准化验证和错误检查C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34106761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com