In some programming languages, asynchronous events can occur at any time.
For instance, in Ruby, there are subclasses of Exception that can be raised at any time — there are few lines of code safe from interruption. Some of exceptions, due to their cause, are not recoverable at all.