抛出NotImplementedException
尚未编写的代码是否被认为是不好的做法?可能TODO评论会被认为更安全吗?
抛出NotImplementedException
尚未编写的代码是否被认为是不好的做法?可能TODO评论会被认为更安全吗?
Answers:
我相信NotImplementedException
实际上是一种好习惯。
的确,如果您忘记实现一个方法,然后在项目中稍后使用它(并且相信我,它确实发生了),那么您可能会花费很长时间进行调试,以逐步找出问题所在。如果有异常,程序将直接停止,并提示异常(如果捕获到异常,则可以通过查找所捕获的异常来快速找到它)。
我建议将TODO注释与NotImplementedException
合并注释结合使用,这样可以将GUI帮助(与VS中的任务)和程序安全性结合在一起。
在我看来,对于发行版而言,它甚至更为重要,因为在大多数情况下,您宁愿使程序崩溃,而不是使程序显然运行正常,但产生错误的结果。
NotImplementedException
方式与TODO注释相同。我认为这是一个不错的功能。
这取决于您对错误和错误处理的一般理解。我是那种“硬错误”类型的人:我会在出现任何提示时抛出异常,这可能是错误的。我会断言一切;如果有错误,应该有东西存在,没有,或者应该有东西存在,而不应该,那么整个宇宙就必须停止。窗户上的惊呼声必须通过扬声器不祥地响。
有些人宁愿不被错误打扰。那么,如果我们将其交付给客户并且缺少整个报告模块,是因为我们忘记了对它进行编码,而测试中没有人意识到它,因为应用程序对此太沉默了怎么办?最好什么也不做,比在客户面前丢个例外!
我会说这是个好主意。通常,我会看到骨架代码抛出的那些异常,这些异常代码是从表单或图表等自动生成的。该异常提醒我实现代码,并且确保我尝试使用已设置但从未完全实现的功能时会出错。有时,我会将其存根或用不太可能导致执行停止的内容(例如向控制台打印警告)代替它,但是我发现它对我有用。
如果您要构建一个供其他人使用的具有此异常的库,那么它比其他方法要好。替代方法是您的库的用户调用一个函数,并想知道为什么似乎什么也没发生。当然,在发货的库中有此异常仍然很糟糕,但是比静默故障好,IMO。
我认为这是个好习惯。另一种选择是传播无效的值或状态,这将影响测试和生产代码。
这是什么样的项目?工作还是在家?在家里,做任何您想做的事-最好的提醒会提醒您您需要完成所从事的工作。
在工作中,完成编写。
我看不到我会签入可能/将破坏其他开发人员,质量检查或构建的代码的情况。