No don't do this either. An exception should only be used to catch exceptional events. Since it seems that $value is just as likely not to be a 'Node' as it is to be one you should not use an exception to test it.
-- gam3
A picture is worth a thousand words, but takes 200K.
As I mentioned, if $value is not a valid invocant, it is an exceptional case.
I'm not aware of any other idiom that respects potentially-overridden isa() methods and handles potentially invalid invocants in one statement. If you know one, please share.
Scalar::Util's blessed() is pretty good, but that technique disallows calling isa() as a class method. Sometimes that's good. Sometimes it's not.