Since ever Magento presented the errors on the front-end for everyone to see and it was good for the developers but once the site has gone live that couldn’t be an option anymore.

Ideally, using error handling mechanism is definitely going to prevent your module from throwing an unexpected error and thereby ceasing the module's process. How exceptions are used is going to vary project by project, team by team.

Every time you can’t predict all possible error so it is best to put a try/catch in important function/handler in production.