I'm trying to create a function that can recognize the parent-child loop.
Imagin
Object A is a parent of Object B
Object B is a parent of Object C
create a function that can prevent the parent-child loop. the function should give at least two parameters (childName, parentName) and get errors if the relationship creates a loop. in the above example if we pass (A, C) should print or pass string:
"A is the parent of C"
I know how to create this function(you can provide answer with any language):
private static void restrict_ParentChild_Loop(Object A, Object B) throws Exception {
if (A.parent == null)
return;
if (A.parent.equals(B)) {
throw new Exception("");
} else {
restrict_ParentChild_Loop(A.parent, B);
}
}
My main question is about how to provide the right message in the Exception. ("A is the parent of C")
CodePudding user response:
My main question is about how to provide right message in the Exception.
I'm still wondering why that's not the question title itself.
Since this question is likely opinion-based... I'll give my shot?
Your code at:
throw new Exception("");
Will throw an Exception
like this:
java.lang.Exception: At ...
So it will be even better if you just tell it what you want it to show in the first place:
throw new Exception(A.parent " is the parent of " B.child);
//This throws:
java.lang.Exception: A is the parent of C: At ...
Which results in:
private static void restrict_ParentChild_Loop(Object A, Object B) throws Exception {
if (A.parent == null)
return;
if (A.parent.equals(B)) {
throw new Exception(A.parent " is the parent of " B.child);
} else {
restrict_ParentChild_Loop(A.parent, B);
}
}