The other possibility, depending on the condition, is to just enqueue a message to the application and keep processing, depending on the issue.  At the library level, it should be mostly Exceptions, but just a thought too for component level implementations.