When should I use code snippet A instead of snippet B (i.e. what are the benefits of using snippet A)?:
Snippet A:
try { // codebloc
It's useful if you need to do some cleanup, e.g. close a database connection. Because "finally" is executed always, you don't need to do the bug-prone copy-paste of the same code in the end of the "try" and in also in one or more "catch" blocks.