gpt4 book ai didi

c# - 错误消息与抛出异常 C# ASP.Net

转载 作者:太空狗 更新时间:2023-10-30 00:47:06 24 4
gpt4 key购买 nike

在许多情况下,在 Web 应用程序中,您需要返回一条错误消息,而不是简单的真/假结果。人们会为此使用异常,但我认为异常是一种异常行为的指示。让我们以类 User 的 Register() 函数为例。如果成功,我们可以简单地返回 true,但如果出现问题,我们想知道到底是什么:“密码不匹配”、“电子邮件格式无效”等等(可能是错误代码)一条消息,无关紧要)。

问题是在 C# 和 .Net 中返回此类错误消息的最佳做法是什么?可能有一个结构准备就绪,例如:

public struct Result {
public bool OK;
public string Message;
}

或者我应该只在函数中使用一个参数?喜欢 Register(out string Message)。

更新。这几乎描述了我需要的一切:http://blogs.msdn.com/kcwalina/archive/2005/03/16/396787.aspx

最佳答案

如果出于验证目的,我会向您推荐出色的 Fluent Validation图书馆。

引用自网站:

using FluentValidation;

public class CustomerValidator: AbstractValidator<Customer> {
public CustomerValidator() {
RuleFor(customer => customer.Surname).NotEmpty();
RuleFor(customer => customer.Forename).NotEmpty().WithMessage("Please specify a first name");
RuleFor(customer => customer.Company).NotNull();
RuleFor(customer => customer.Discount).NotEqual(0).When(customer => customer.HasDiscount);
RuleFor(customer => customer.Address).Length(20, 250);
RuleFor(customer => customer.Postcode).Must(BeAValidPostcode).WithMessage("Please specify a valid postcode");
}

private bool BeAValidPostcode(string postcode) {
// custom postcode validating logic goes here
}
}

Customer customer = new Customer();
CustomerValidator validator = new CustomerValidator();
ValidationResult results = validator.Validate(customer);

bool validationSucceeded = results.IsValid;
IList<ValidationFailure> failures = results.Errors;

关于c# - 错误消息与抛出异常 C# ASP.Net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1476439/

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