Please refer to the start of the thread to identify what was being fixed.
In your case, as well as the original thread, the Parent object would not exist nor would it result in a VARTYPE = "U". That is why I said to reverse the code.
IF VARTYPE(THIS.Parent) = "O" && This fails
ELSE
ENDIF
To....
IF VARTYPE(THIS.Parent) <> "O" && This should not fail.
ELSE
ENDIF
Because there is no Parent, the default error routine would fire on the object. If there is a Parent, then the Error routine for the Parent would fire.
So IF you had an error routine on your Line object, the Error routine for the Line object would fire instead of the error routine of the parent.