想象一下以下错误:
SomeObject.someMethod failed with System.ArgumentException: Requested value 'someArgument' was not found.
这是否意味着情况如下:
new SomeObject().someMethod(invalid arguments);
或者这个:
public class SomeObject
{
public SomeObject() { }
public void someMethod(Argument someArgument) { someOtherMethod(invalid arguments); }
private void someOtherMethod(Argument someArgument) { /*do something*/ }
}
通常情况下,我只是在调试器中手动生成此异常,但如果我对其进行硬编码,那么它就不会编译,我不知道最终用户正在做什么导致此异常。但我可以在事件日志中看到它发生。
任何帮助都将不胜感激,谢谢。
答案 0 :(得分:0)
根据MSDN:
当其中一个参数提供给a时抛出的异常 方法无效。
例如,让我们有以下类
public class Account
{
public decimal Amount { get; set; }
public Account(decimal amount)
{
Amount = amount;
}
public decimal CalculateTax(decimal taxAmount)
{
if(taxAmount>0.8*Amount)
throw new ArgumentException("The taxAmount should be less than 80% of Amount", "percentage");
return Amount-taxAmount;
}
}
现在我们创建一个Account
对象:
var account = new Account(1000M);
如果我们将CalculateTax
称为taxAmount
900M,则会引发ArgumentException
。