【发布时间】:2011-02-03 09:50:01
【问题描述】:
假设我们有一个方法处理树层次结构数据结构中的操作,该结构位于处理这种结构的类中。
让我们仔细看看其中一种方法:
void MoveNode(Node currentNode, Node newParentNode)
{
/* check if new parent isn't current's child already */
if (newParentNode.LMargin < currentNode.LMargin && newParentNode.RMargin > currentNode.RMargin)
{
//DO WORK
}
else throw new ArgumentException("New parent node cannot be current's own child");
}
MSDN 声明:不要抛出异常来控制流程!
我的问题:您认为 ArgumentException 的这种使用是否可行,或者您会使用某种返回值。 如果是这样,您将如何提供错误/验证消息。
【问题讨论】:
-
就我个人而言,我什么也不做。对我来说,将
move放在它已经存在的同一个地方似乎并不无效,就像int i = 0; i = 0;是无效的一样。 -
逻辑是新的父母不能是当前的孩子。不是同一个地方。
-
是的,这更有意义,抱歉我看错了:)
-
这能回答你的问题吗? Choosing between exception and return value
标签: c# .net exception-handling return-value