当方法尝试使用可为空的字段时抛出哪个异常?我实际上正在从事框架开发,这意味着一种非常强大的编码方法。我遇到了一个问题,我不知道我需要抛出哪个System.Exception派生类。基本上当我有一个类具有可以由构造函数初始化的字段并且具有使用这些字段的方法时就是这种情况。如果字段未由用户初始化,我必须抛出哪个异常?(这意味着它们是空的)这是一个例子:publicclassMyConnection{privateUriendpointUri;publicUriEndpointUri{get{returnthis.endpointUri;}设置{this.endpointUri=value;}}publicMyConnection(){}publicMyConnection(UriendpointUri){this.endpointUri=endpointUri;}publicFileStreamGetFile(){if(this.endpointUri!=null){//我的执行者方法}else{thrownewTheExceptionINeedToThrow("endpointUri",...);请注意,我一直在阅读关于异常处理和抛出的整个“框架设计指南”一章,但我还没有找到针对这种情况的任何解决方案。也许我误会了什么......谢谢你的帮助。编辑:我提供一个空的构造函数这一事实似乎让我的问题有点混乱,但这完全是自愿的。它有时在某些对象中很有用,这些对象必须符合一系列不能在多个对象中复制的不同状态。ThrowsInvalidOperationException:当方法调用对于对象的当前状态无效时抛出的异常。请注意,空引用不会传递给方法-它在调用方法时已经存在-所以它是对象的当前状态,即void,而不是参数。但是,如果可能的话,最好防止以这种方式创建对象——它是否必须是可写属性?您想要一个端点URI为空的实例吗?NullReferenceException、InvalidArgumentExecption或ApplicationException都可以,只要异常描述清楚地说明什么是null。像其他人一样,我会推荐InvalidOperationException(因为JohnSkeet说过):)如果您使用null参数调用函数,那么我会使用ArgumentNullException异常吗?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
