Home > Blockchain >  check parent-child loop function
check parent-child loop function

Time:07-16

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);
    }
}
  • Related