This is the correct behavior if an operation with database is performed and an exception is catched within Try, it still causes a rollback.
You will see "Errors have already occurred in this transaction!" message as for not catched exception. At the same time if non database-related exception occured, it can be catched and will not cause a rollback.