我正在尝试对我的模型类进行一些基本验证。
在我的项目中,我有一个模型类:
public class SimpleRequest {
string _message;
string _otherProperty;
public Message {
get {return _message;}
set {
if (value=="THROW EXCEPTION")
throw new Exception();
_message = value;
}
}
public OtherProperty {
get {return _otherProperty;}
set {
_otherProperty= value;
}
}
}
在我的ApiController中,我有一个功能
public string Post([FromBody] SimpleRequest) {
// Something, it doesn't matter.
}
并在身体
{
"Message" : "THROW EXCEPTION",
"OtherProperty" : "Hello World"
}
问题是,如果帖子中包含“THROW EXCEPTION”确实会抛出它。但是如果你单步执行代码,抛出异常后,下一步就是Post函数。但是,SimpleRequest参数已部分填充。消息为空,其他属性已正确填充“Hello World”
我宁愿能够捕获异常并返回带有失败代码的结果。但在这一点上,例外就消失了。
我可以更改此行为吗?或者我做错了吗?
TIA!
答案 0 :(得分:0)
因为当您抛出异常时,未调用下一行,这就是_message为空的原因。