Perintah try/catch/finally dalam JavaScript

Definisi dan penggunaan

Perintah try/catch/finally mengatasi kesalahan yang mungkin terjadi di blok kode, sambil tetap menjalankan kode.

Kesalahan dapat disebabkan oleh kesalahan pemrograman penulis kode, kesalahan masukan yang salah, dan situasi yang tak terduga lainnya.

Perintah try memungkinkan Anda mendefinisikan blok kode yang akan diuji untuk kesalahan saat dieksekusi.

Jika terjadi kesalahan di blok try, pernyataan catch memungkinkan Anda untuk mendefinisikan blok kode yang akan dieksekusi.

Pernyataan finally memungkinkan Anda untuk mengeksekusi kode setelah try dan catch, tanpa mengurangi hasilnya.

Keterangan:Pernyataan catch dan finally adalah pilihan, tetapi saat menggunakan pernyataan try, salah satu dari keduanya harus digunakan (tidak secara bersamaan).

Petunjuk:Ketika terjadi kesalahan, JavaScript biasanya akan berhenti dan menghasilkan pesan kesalahan. Gunakan pernyataan throw untuk membuat kesalahan khusus (membuat eksepsi). Jika throw digunakan bersamaan dengan try dan catch, Anda dapat mengendalikan aliran program dan menghasilkan pesan kesalahan khusus.

Untuk mengetahui lebih banyak tentang kesalahan JavaScript, belajar tutorial kesalahan JavaScript.

Contoh

Pada contoh ini, kami salah menuliskan kata di kode (di blok try).

Pada contoh ini, halaman seharusnya menampilkan "Welcome guest!", tetapi terjadi kesalahan penulisan alert.

Blok catch akan menangkap kesalahan dan mengeksekusi kode untuk menangani dia:

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

coba sendiri

Ada banyak contoh TIY lainnya di bawah halaman.

Sintaks

try {
  tryCode - Blok kode yang akan di cobakan
}
catch(err) {
  catchCode - Blok kode untuk menangani kesalahan
} 
finally {
  finallyCode - Blok kode yang akan dieksekusi tanpa mengurangi hasil try / catch
}

Nilai Parameter

Parameter Deskripsi
tryCode Diperlukan. Kode blok yang harus dieksekusi saat ada kesalahan.
err Diperlukan, jika digunakan bersamaan dengan catch. Tentukan variabel lokal yang merujuk ke kesalahan. Variabel ini dapat merujuk ke objek Error (termasuk informasi tentang kesalahan, seperti pesan "'addlert' is not defined"). Jika kesalahan dihasilkan oleh pernyataan throw, variabel ini merujuk ke objek yang ditentukan dalam pernyataan throw (lihat "Contoh Lebih Banyak").
catchCode Pilihan. Kode blok yang akan dieksekusi jika terjadi kesalahan di blok try. Jika tidak terjadi kesalahan, kode blok ini tidak akan dieksekusi.
finallyCode Pilihan. Semua kode blok yang harus dieksekusi, tanpa mengurangi hasil try / catch.

Detil Teknik

Versi JavaScript: ECMAScript 3

Contoh Lebih Banyak

Contoh

Contoh ini memeriksa input. Jika nilai salah, eksepsi (err) akan dilempar.

pernyataan catch menangkap eksepsi (err) dan menampilkan pesan kesalahan khusus:

<!DOCTYPE html>
<html>
<body>
<p>Masukkan angka antara 5 dan 10:</p>
<input id="demo" type="text">
<button type="button" onclick="myFunction()">Test Input</button>
<p id="message"></p>
<script>
function myFunction() {
  var message, x;
  message = document.getElementById("message");
  message.innerHTML = "";
  x = document.getElementById("demo").value;
  try { 
    if(x == "") throw "is Empty";
    if(isNaN(x)) throw "not a number";
    if(x > 10) throw "too high";
    if(x < 5) throw "too low";
  }
  catch(err) {
    message.innerHTML = "Input " + err;
  }
}
</script>
</body>
</html>

coba sendiri

Contoh

finally pernyataan memungkinkan Anda melaksanakan kode setelah try dan catch, tanpa menghiraukan hasilnya:

function myFunction()
  var message, x;
  message = document.getElementById("message");
  message.innerHTML = "";
  x = document.getElementById("demo").value;
  try { 
    if(x == "") throw "Empty";
    if(isNaN(x)) throw "Not a number";
    if(x > 10) throw "Too high";
    if(x < 5) throw "Too low";
  }
  catch(err) {
    message.innerHTML = "Error: " + err + ".";
  }
  finally {
    document.getElementById("demo").value = "";
  }
}

coba sendiri

browser mendukung

pernyataan Chrome IE Firefox Safari Opera
try/catch/finally Dukungan Dukungan Dukungan Dukungan Dukungan

Halaman yang Berhubungan

Panduan JavaScript:Kesalahan JavaScript

Panduan Referensi JavaScript:Perintah throw JavaScript