Hmm. It seems as though there's a danger here of leaking information outside the called method. If I call the parse file method, how do I as the caller know what to do if there's a problem parsing the document? If I'm expected to know that, then you can just make that feature part of the API - "I'll call you back when there's a problem parsing the file". Perhaps I'm missing something but I'm not sure that this doesn't solve a problem that soluble in other ways.