Quitting the problem is fine but I would not execute `exit()` in this class even for non-GUI because
- This is a class in a library and not a main program. Only main program should have a permission to start and exit its process.
- We need to keep consistency with other linear solver libraries such as Lis. If we quit with PETSc, the same should be applied to Lis and all others. This cannot be guaranteed if `exit()` needs to be written in each particular implementation of linear solver.
- Quitting or not quitting depends on a problem and purpose. In some of my problem, I normally quit the program even when it reaches the max iteration numbers, because I know convergence is very slow and the program cannot solve the problem in practical time.