gpt4 book ai didi

c# - 为无效属性或属性参数抛出什么异常?

转载 作者:行者123 更新时间:2023-11-30 18:43:17 27 4
gpt4 key购买 nike

我正在使用自定义属性将元数据附加到类方法。在运行时期间,验证这些属性及其参数。如果属性(或属性参数)被证明无效,是否已就抛出哪个现有异常类达成共识?

例如,给定一个将实例方法名称作为其构造函数参数的属性:

public class StateAttribute : Attribute {
public string ParentState { get; set; }
public StateAttribute() {}
}

在类中使用时:

public StateMachine {
[State]
public Result TopState(Event e) { ... }

[State( ParentState = "TopState" )]
public Result NestedState(Event e) { ... }
}

初始化例程将遍历应用了 State 属性的所有方法,并将 ParentState 名称解析为实际的 MethodInfo .如果(例如,由于拼写错误)找不到具有该名称的方法,则需要抛出异常。由于我不想发明新的异常类,您会建议哪一个?

可以肯定的是,没有办法在编译期间验证方法名称,对吧?

最佳答案

InvalidOperationException 是我个人在“出现问题”时使用的万能异常。

但老实说,这听起来像是一个完美的例子,可以派生你自己的异常。

关于c# - 为无效属性或属性参数抛出什么异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4738036/

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