Exceptions handling

Hi all,
I noticed that for some exceptions the process is stopped and does a rollback, even if the exception is caught in the try catch block, while for others like the java.lang.Exception the execution continues normally, obviously always if caught.

For example, if I send a message event in a service task, but there is no “message catch event” with that message in the process,Camunda generates an exception and even if I catch the exception in the “catch (Exception e) {}” ,the process is blocked and does a rollback.
While if in the service activity I start “throw new Exception ()”,and catch the exception in the catch as in the first case, the process is not blocked and no rollback is done.

Do different exceptions result in different behavior even if they are all caught in a java catch?

What are the exceptions that blocks the execution process?