是否有内置的.NETexception,指示非法的对象状态?

如果遇到非法状态,应该抛出什么exception – 例如,一次只能被调用一次的初始化方法被第二次调用? 我真的没有看到任何有意义的内置exception。 这似乎是应该在框架内的东西 – 我不是在正确的位置戳?

InvalidOperationException也许?

当方法调用对于对象的当前状态无效时引发的exception。

如果所有我会说System.InvalidProgramException最接近你想要的。 抛出自定义exception有什么问题?