in reply to How do I report an error back to the user of my object?

My personal preference in such matters is that “instantiating an object” is one thing, and “loading it with data” is another thing entirely.   Therefore, I will define the constructor to initialize the object and to set a loaded property to False.   Then, I will define a separate load() method.   I will also define a must_be_loaded() method that returns “self” if the object is loaded (as expected), or will die if it is not.   This “pass-thru method” is used in every getter-method that retrieves data from the object.