Tutorial JS

JS RUMAH Pengenalan JS JS Dimana Keluaran JS Pernyataan JS Sintaks JS Komentar JS Variabel JS JS Let JS Const Operator JS JS Aritmatika Tugas JS Tipe Data JS Fungsi JS Objek JS Acara JS String JS Metode String JS Pencarian String JS Template String JS Nomor JS Metode Nomor JS JS Array Metode Array JS Sortir Array JS Iterasi Array JS JS Array Const Tanggal JS Format Tanggal JS Metode Dapatkan Tanggal JS Metode Penetapan Tanggal JS JS Matematika JS Acak JS Boolean Perbandingan JS Ketentuan JS Beralih JS JS Loop Untuk JS Loop Untuk Masuk JS Loop Untuk Of JS Loop Sementara Istirahat JS JS Iterable JS Set Peta JS Tipe JS Konversi Tipe JS JS Bitwise JS RegExp Kesalahan JS Lingkup JS Pengangkatan JS Mode Ketat JS JS Kata Kunci ini Fungsi Panah JS Kelas JS JS JSON Debug JS Panduan Gaya JS Praktik Terbaik JS Kesalahan JS Kinerja JS Kata-kata Cadangan JS

Versi JS

Versi JS JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Tepi Sejarah JS

Objek JS

Definisi Objek Properti Objek Metode Objek Tampilan Objek Aksesor Objek Konstruktor Objek Prototipe Objek Obyek Iterable Set Objek Peta Objek Referensi Objek

Fungsi JS

Definisi Fungsi Parameter Fungsi Panggilan Fungsi Panggilan Fungsi Fungsi Terapkan Penutupan Fungsi

Kelas JS

Perkenalan Kelas Warisan Kelas Kelas Statis

JS Asinkron

Panggilan Balik JS JS Asinkron JS Janji JS Async/Menunggu

JS HTML DOM

Pengenalan DOM Metode DOM Dokumen DOM Elemen DOM HTML DOM Formulir DOM CSS DOM Animasi DOM Acara DOM Pendengar Acara DOM Navigasi DOM Node DOM Koleksi DOM Daftar Node DOM

JS Browser BOM

Jendela JS Layar JS Lokasi JS Sejarah JS JS Navigator Peringatan Munculan JS Waktu JS JS Cookies

JS Web API

Pengantar API Web API Formulir Web API Riwayat Web API Penyimpanan Web API Pekerja Web API Pengambilan Web API Geolokasi Web

JS AJAX

Pengenalan AJAX AJAX XMLHttp Permintaan AJAX Tanggapan AJAX File XML AJAX AJAX PHP AJAX ASP Basis Data AJAX Aplikasi AJAX Contoh AJAX

JS JSON

Perkenalan JSON Sintaks JSON JSON vs XML Tipe Data JSON Penguraian JSON Stringify JSON Objek JSON Array JSON Server JSON JSON PHP JSON HTML JSON JSONP

JS vs jQuery

Pemilih jQuery jQuery HTML jQuery CSS jQuery DOM

Grafik JS

Grafik JS JS Kanvas JS Plotly JS Chart.js Bagan Google JS JS D3.js

Contoh JS

Contoh JS JS HTML DOM Masukan HTML JS Objek HTML JS Acara HTML JS JS Browser Editor JS Latihan JS kuis JS Sertifikat JS

Referensi JS

Objek JavaScript Objek DOM HTML


Kesalahan JavaScript


Lempar, dan Coba...Tangkap...Akhirnya

Pernyataan trymendefinisikan blok kode untuk dijalankan (untuk mencoba).

Pernyataan catchtersebut mendefinisikan blok kode untuk menangani kesalahan apa pun.

Pernyataan finallymendefinisikan blok kode untuk dijalankan terlepas dari hasilnya.

Pernyataan throwmendefinisikan kesalahan kustom.


Kesalahan Akan Terjadi!

Saat menjalankan kode JavaScript, kesalahan yang berbeda dapat terjadi.

Kesalahan dapat berupa kesalahan pengkodean yang dilakukan oleh programmer, kesalahan karena salah input, dan hal-hal lain yang tidak terduga.

Contoh

Dalam contoh ini kami salah mengeja "alert" sebagai "adddlert" untuk secara sengaja menghasilkan kesalahan:

<p id="demo"></p>

<script>
try {
  adddlert("Welcome guest!");
}
catch(err) {
  document.getElementById("demo").innerHTML = err.message;
}
</script>

JavaScript menangkap addlert sebagai kesalahan, dan mengeksekusi kode tangkap untuk menanganinya.


JavaScript mencoba dan menangkap

Pernyataan trytersebut memungkinkan Anda untuk menentukan blok kode yang akan diuji kesalahannya saat sedang dieksekusi.

Pernyataan catchtersebut memungkinkan Anda untuk menentukan blok kode yang akan dieksekusi, jika terjadi kesalahan pada blok try.

Pernyataan JavaScript trydan catch datang berpasangan:

try {
  Block of code to try
}
catch(err) {
  Block of code to handle errors
}


JavaScript Melempar Kesalahan

Ketika terjadi kesalahan, JavaScript biasanya akan berhenti dan menghasilkan pesan kesalahan.

Istilah teknis untuk ini adalah: JavaScript akan melempar pengecualian (melempar kesalahan) .

JavaScript sebenarnya akan membuat objek Error dengan dua properti: name dan message .


Pernyataan lemparan

Pernyataan throwtersebut memungkinkan Anda membuat kesalahan khusus.

Secara teknis Anda dapat melempar pengecualian (melempar kesalahan) .

Pengecualian dapat berupa JavaScript String, a Number, a Booleanatau an Object:

throw "Too big";    // throw a text
throw 500;          // throw a number

Jika Anda menggunakan throwbersama dengan trydan catch, Anda dapat mengontrol aliran program dan menghasilkan pesan kesalahan khusus.


Contoh Validasi Masukan

Contoh ini memeriksa input. Jika nilainya salah, pengecualian (err) dilemparkan.

Pengecualian (err) ditangkap oleh pernyataan tangkap dan pesan kesalahan khusus ditampilkan:

<!DOCTYPE html>
<html>
<body>

<p>Please input a number between 5 and 10:</p>

<input id="demo" type="text">
<button type="button" onclick="myFunction()">Test Input</button>
<p id="p01"></p>

<script>
function myFunction() {
  const message = document.getElementById("p01");
  message.innerHTML = "";
  let x = document.getElementById("demo").value;
  try {
    if(x == "") throw "empty";
    if(isNaN(x)) throw "not a number";
    x = Number(x);
    if(x < 5) throw "too low";
    if(x > 10) throw "too high";
  }
  catch(err) {
    message.innerHTML = "Input is " + err;
  }
}
</script>

</body>
</html>

Validasi HTML

Kode di atas hanyalah sebuah contoh.

Peramban modern akan sering menggunakan kombinasi JavaScript dan validasi HTML bawaan, menggunakan aturan validasi yang telah ditentukan sebelumnya yang ditentukan dalam atribut HTML:

<input id="demo" type="number" min="5" max="10" step="1">

Anda dapat membaca lebih lanjut tentang validasi formulir di bab selanjutnya dari tutorial ini.


Pernyataan akhirnya

Pernyataan finallytersebut memungkinkan Anda mengeksekusi kode, setelah mencoba dan menangkap, terlepas dari hasilnya:

Sintaksis

try {
  Block of code to try
}
catch(err) {
  Block of code to handle errors
}
finally {
  Block of code to be executed regardless of the try / catch result
}

Contoh

function myFunction() {
  const message = document.getElementById("p01");
  message.innerHTML = "";
  let x = document.getElementById("demo").value;
  try {
    if(x == "") throw "is empty";
    if(isNaN(x)) throw "is not a number";
    x = Number(x);
    if(x > 10) throw "is too high";
    if(x < 5) throw "is too low";
  }
  catch(err) {
    message.innerHTML = "Error: " + err + ".";
  }
  finally {
    document.getElementById("demo").value = "";
  }
}

Objek Kesalahan

JavaScript memiliki objek kesalahan bawaan yang menyediakan informasi kesalahan saat terjadi kesalahan.

Objek kesalahan menyediakan dua properti yang berguna: nama dan pesan.


Properti Objek Kesalahan

PropertiKeterangan
namaMenetapkan atau mengembalikan nama kesalahan
pesanMenetapkan atau mengembalikan pesan kesalahan (string)

Nilai Nama Kesalahan

Enam nilai berbeda dapat dikembalikan oleh properti nama kesalahan:

Nama KesalahanKeterangan
kesalahan evaluasiTerjadi kesalahan dalam fungsi eval()
RentangErrorAngka "di luar jangkauan" telah terjadi
ReferensiErrorReferensi ilegal telah terjadi
Kesalahan sintaksTerjadi kesalahan sintaks
TypeErrorTerjadi kesalahan ketik
kesalahan URITerjadi kesalahan dalam encodeURI()

Enam nilai yang berbeda dijelaskan di bawah ini.


Kesalahan Evaluasi

An EvalErrormenunjukkan kesalahan dalam fungsi eval().

Versi JavaScript yang lebih baru tidak membuang EvalError. Gunakan SyntaxError sebagai gantinya.


Rentang Kesalahan

A RangeErrordilempar jika Anda menggunakan angka yang berada di luar kisaran nilai hukum.

Misalnya: Anda tidak dapat menyetel jumlah digit signifikan suatu angka menjadi 500.

Contoh

let num = 1;
try {
  num.toPrecision(500);   // A number cannot have 500 significant digits
}
catch(err) {
  document.getElementById("demo").innerHTML = err.name;
}

Kesalahan Referensi

A ReferenceErrordilempar jika Anda menggunakan (referensi) variabel yang belum dideklarasikan:

Contoh

let x = 5;
try {
  x = y + 1;   // y cannot be used (referenced)
}
catch(err) {
  document.getElementById("demo").innerHTML = err.name;
}

Kesalahan sintaks

A SyntaxErrordilemparkan jika Anda mencoba mengevaluasi kode dengan kesalahan sintaksis.

Contoh

try {
  eval("alert('Hello)");   // Missing ' will produce an error
}
catch(err) {
  document.getElementById("demo").innerHTML = err.name;
}

Ketik Kesalahan

A TypeErrordilemparkan jika Anda menggunakan nilai yang berada di luar kisaran tipe yang diharapkan:

Contoh

let num = 1;
try {
  num.toUpperCase();   // You cannot convert a number to upper case
}
catch(err) {
  document.getElementById("demo").innerHTML = err.name;
}

Kesalahan URI (Uniform Resource Identifier)

A URIErrordilemparkan jika Anda menggunakan karakter ilegal dalam fungsi URI:

Contoh

try {
  decodeURI("%%%");   // You cannot URI decode percent signs
}
catch(err) {
  document.getElementById("demo").innerHTML = err.name;
}

Properti Objek Kesalahan Non-Standar

Mozilla dan Microsoft mendefinisikan beberapa properti objek kesalahan non-standar:

fileName (Mozilla)
lineNumber (Mozilla)
kolomNumber (Mozilla)
tumpukan (Mozilla)
deskripsi (Microsoft)
nomor (Microsoft)

Jangan gunakan properti ini di situs web publik. Mereka tidak akan bekerja di semua browser.


Referensi Kesalahan Lengkap

Untuk referensi lengkap objek Kesalahan, buka Referensi Kesalahan JavaScript Lengkap kami .