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')) => null

Solution

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.