we also need a way to resume execution by throwing an exception