In the pub/sub model, when the broker is not available(down, network issue, no enough storage, …), the docs will be published locally and not consider being an error though you had error in the broker side. When the broker is available( the issues are solved, for instance ), the docs will be pushed to broker. I think that is the why it did not go to your catch block.
#Integration-Server-and-ESB#webMethods#broker#Universal-Messaging-Broker