Latihan 1: Membaca Error Messages — Debugging

Latihan 1 dari materi Membaca Error Messages di Debugging — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Lengkapi dua function di kode awal. Baris console.log dan blok try/catch di bawahnya biarkan.

  1. classifyError(errorMessage) menerima teks pesan error dan mengembalikan jenisnya. Cek berurutan, dan langsung return begitu ada yang cocok:
    • mengandung "is not defined": kembalikan "ReferenceError"
    • mengandung "is not a function": kembalikan "TypeError:NotFunction"
    • mengandung "Cannot read": kembalikan "TypeError:NullAccess"
    • mengandung "Unexpected token": kembalikan "SyntaxError"
    • selain itu: kembalikan "Unknown"
  2. safeDivide(a, b) mengembalikan a / b, dengan dua penjaga yang memakai throw new Error(...):
    • a atau b bukan number (typeof bukan "number"): lempar error dengan pesan "Not a number"
    • b sama dengan 0: lempar error dengan pesan "Division by zero"

Kode awal memanggil safeDivide di dalam try/catch dan mencetak e.message kalau ada error.

Yang dicek, satu per baris di console, urut: ReferenceError, TypeError:NotFunction, TypeError:NullAccess, SyntaxError, Unknown, 5, Division by zero, Not a number.

Kodenya juga harus mengandung throw, dan ada cek dengan masukan lain: classifyError("z is not defined") harus "ReferenceError", classifyError("nothing here") harus "Unknown", safeDivide("a", 2) harus melempar "Not a number", dan safeDivide(4, 0) harus melempar "Division by zero".

Hint