Error Handling in JavaScript with try, catch, and finally

Go beyond basic try/catch in JavaScript with finally, custom errors, async error handling, testing, user-facing failures, and defensive-code traps.