I guess it's possible that it was thrown in such a way that SOAP::Lite did/could not catch it -- after all, as you said, it caused the program to die horribly.
Typically with SOAP, transport errors include things such as HTTP errors, or the server not being available for whatever reason. So, by setting on_fault to an empty subroutine, you're suppressing most (maybe not all) transport errors.
That being said -- are you sure that the SOAP call is what caused the program to crash? Could there have been something else in your program that did it? Can you duplicate the problem, and/or trace it to a specific section of code?
|