I have noticed when I solve using a PETScSNESSolver(), if the solver crashes, before reaching a solution of a NAN, etc,, it will not throw an exception only on process 0. If you try and handle the exception (try .. except), only process 0 will continue, while the rest of the processes will hang. Is there a way around this? Particularly, it would be useful to be able to, for example, try another solver, if one PETScSNESSolver solver fails. This is not possible if the other processes are left hanging.