Use specific exceptions
Changed behavior of restart() method when the propagation is not stopped