gpt4 book ai didi

c# - 应该抛出哪个异常?

转载 作者:太空狗 更新时间:2023-10-29 20:22:07 24 4
gpt4 key购买 nike

我编写了一个具有三个 bool 属性的自定义操作方法选择器属性。三个都为false是无效的。其中至少一个必须为 true。当 IsValidForRequest 被执行时,我检查至少其中一个是 true。但如果没有,我应该抛出哪个异常?

一些相关代码:

public class MyCustomAttribute : ActionMethodSelectorAttribute
{
public bool Prop1 { get; set; }
public bool Prop2 { get; set; }
public bool Prop3 { get; set; }

public MyCustomAttribute()
{
this.Prop1 = true;
this.Prop2 = true;
this.Prop3 = true;
}

public override bool IsValidForRequest(ControllerContext controllerContext, MethodInfo methodInfo)
{
if (controllerContext == null)
{
throw new ArgumentNullException("controllerContext");
}

// at least one of them must be true
if (!this.Prop1 && !this.Prop2 && !this.Prop3)
{
throw new ?????
}

// other codez here
}
}

属性具有很好的初始化能力,同时还提供属性值,因此我必须在 IsValidForRequest 方法中检查它们。

[MyCustom(Prop1 = false, Prop2 = false, Prop3 = false)]

应该抛出哪个异常?

最佳答案

我可能会抛出 InvalidOperationException,因为该操作对于对象的当前状态无效。

关于c# - 应该抛出哪个异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5145555/

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