由于对象的当前状态,操作无效?

时间:2010-06-17 17:51:48

标签: c# exception

我用C#编程;这个代码大约一个星期前正在运行,但它抛出一个异常,我根本不明白它可能有什么问题。

Var root = new CalculationNode(); -> Throw exception.

在所列出的唯一内容的调用堆栈中,我被告知可能需要一个干净的构建,但我对任何想法或建议持开放态度。

谢谢, - 比尔

更新: 例外细节

System.InvalidOperationException未被用户代码处理   消息=由于对象的当前状态,操作无效。   来源= Calculator.Logic   堆栈跟踪:        在〜\ Source \ Calculator.Logic \ MyBaseExpressionParser.cs中的〜。Calculator.Logic.MyBaseExpressionParser.Parse(String表达式):第44行        在〜\ Projects \ Tests \ Calculator.Logic.Tests \ MyBaseCalculatorServiceTests.cs中的〜.Calculator.Logic.Tests.MyBaseCalculatorServiceTests.BasicMathDivision():第60行   InnerException:

CalculationNode的代码:

public sealed calss CalculationNode
{
 public CalculationNode()
{
this.Left = null;
this.Right = null;
this.Element = new CalculationElement();
}

public CalculationNode Left {get;set;}

public CalculationNode Right {get;set;}

public CalculationElement Element {get; set;}
}

CalculationElement的代码:

public sealed class CalculationElement
{
 public CalculationElement()
{
Value = string.Empty;
IsOperator = false;
}

public string Value {get; set}

public bool IsOperator {get; set}
}

4 个答案:

答案 0 :(得分:1)

首先要看的是CalculationNode的构造函数代码。您可以在该构造函数中设置断点并逐步执行代码并查看正在发生的问题。

如果您使用log4net之类的工具进行任何类型的日志记录,则应检查您可能拥有的任何日志。

正如已经提到的那样,查看堆栈跟踪以查看是否会消除任何光线总是一个好主意。

答案 1 :(得分:0)

如果您最近更新了Service Pack,则可能需要更新数据库架构。

答案 2 :(得分:0)

您的Calculator.Logic.MyBaseExpressionParser.Parse方法在第44行抛出异常。

您应该查看方法并找出问题所在。

答案 3 :(得分:0)

看起来像是Calculator.Logic.MyBaseExpressionParser.Parse,它抛出异常,在代码中的其他地方被调用,只有看起来就像该行导致异常一样。也许你正在调试exe的一个版本,它不是最新版本的代码,或者还有另一个执行Parse的线程。