Rule 1: Always keep try blocks tight around exception-throwing operations.
Rule 2: When extensive business logic separates exception-throwing operations, refactor into separate methods rather than using one large try block.
Rule 3: When refactoring isn't practical, use one try with multiple catches when multiple exception-throwing operations for the same purpose are: consecutive, OR have business logic between them that's related to same workflow and not extensive code (<= 10 lines).
Otherwise: Use multiple try-catch blocks with tight scope for each exception-throwing operation.