Generally, never.
However, sometimes you need to catch specific errors.
If you are writing framework code, it might be wise to catch LinkageError. I have also seen some stupid 3rd-party code throwing subclasses of Error, so you’ll have to handle those as well.
By the way, I am not sure it is not possible to recover from OutOfMemoryError.
Want to learn Java? Check out the Java certification from Intellipaat.