I was wondering if people think being able to call methods on non-existant objects is an intended or unintended featuture of QTP?

The reason I ask is that I have almost exclusive worked with web AUTs previously, and have taken advantage of being able to call methods on objects which do not exist.

e.g Using my example above, QTP would crash if I trie dto call my User Register Function adn the object was not on screen.

As a side issue, I'm wondering if this also explains why the Exist statement for a WPF object always waits the object sync timeout value and ignores any time passed in as an argument?

I register a user function as a method where the first step is to check whether that object exists. If it doesn't exist, then exit the function.

This allows me to call thsi method even if the object doesn't exist.

However, I am now working on a WPF AUT, and it is fundamentally different in that if the object does not exist, then you cannot call a method