Exercise 3: Safe Execute (try/catch wrapper)
Problem Statement
Create a function safe(fn, fallback) that runs fn in try/catch. Return fallback if error occurs.
Sample Output:
safe(() => JSON.parse('{"a":1}')) => {a: 1}
safe(() => JSON.parse('invalid')) => nullSolution
const safe = (fn, fallback = null) => {
try { return fn(); } catch { return fallback; }
};Explanation
Overall Goal:
- Function ko safely execute karna: error aaye to crash nahi, fallback return karna.
- Try-catch wrapper pattern.
Single Line Solution:
const safe = (fn, fallback = null) => { try { return fn(); } catch { return fallback; } };
Part 1: Function header
const safe = (fn, fallback = null) => {fn→ function jo execute hona hai.fallback = null→ default fallback value (optional).
Part 2: Try block
try { return fn(); }try→ error handling: agar code me error aaye to catch block me jayega.fn()→ function ko execute karte hain.- Agar success → result return.
Part 3: Catch block
catch { return fallback; }catch→ agar try block me error aaya to ye block execute hoga.- Error details nahi chahiye, isliye parameter nahi diya.
return fallback→ error case me fallback value return.
Example:
safe(() => JSON.parse('{"a":1}'))→{a: 1}(success).safe(() => JSON.parse('invalid'))→null(error, fallback).
Real world:
- JSON parsing: invalid JSON handle karna.
- localStorage reads: data corrupt ho sakta hai.
- API calls: network errors handle karna.