Dalam tutorial ini, Anda akan belajar tentang pernyataan lemparan JavaScript dengan bantuan contoh.
Di tutorial sebelumnya, Anda belajar menangani pengecualian menggunakan pernyataan JavaScript try… catch. Pernyataan coba dan tangkap menangani pengecualian dengan cara standar yang disediakan oleh JavaScript. Namun, Anda dapat menggunakan throw
pernyataan tersebut untuk meneruskan pengecualian yang ditentukan pengguna.
Di JavaScript, throw
pernyataan menangani pengecualian yang ditentukan pengguna. Misalnya, jika angka tertentu dibagi dengan 0 , dan jika Anda perlu mempertimbangkan Infinity
sebagai pengecualian, Anda dapat menggunakan throw
pernyataan untuk menangani pengecualian itu.
Pernyataan lemparan JavaScript
Sintaks dari pernyataan lemparan adalah:
throw expression;
Di sini, expression
tentukan nilai pengecualian.
Sebagai contoh,
const number = 5; throw number/0; // generate an exception when divided by 0
Catatan : Ekspresi dapat berupa string, boolean, angka, atau nilai objek.
Lempar JavaScript dengan try… catch
Sintaksnya try… catch… throw
adalah:
try ( // body of try throw exception; ) catch(error) ( // body of catch )
Catatan : Ketika pernyataan throw dijalankan, itu keluar dari blok dan pergi ke catch
blok. Dan kode di bawah throw
pernyataan tersebut tidak dieksekusi.
Contoh 1: Coba… Tangkap… Lempar Contoh
const number = 40; try ( if(number> 50) ( console.log('Success'); ) else ( // user-defined throw statement throw new Error('The number is low'); ) // if throw executes, the below code does not execute console.log('hello'); ) catch(error) ( console.log('An error caught'); console.log('Error message: ' + error); )
Keluaran
Kesalahan tertangkap Pesan kesalahan: Kesalahan: Jumlahnya rendah
Dalam program di atas, sebuah kondisi dicentang. Jika angkanya kurang dari 51 , kesalahan dilemparkan. Dan kesalahan itu dilemparkan menggunakan throw
pernyataan.
The throw
pernyataan menentukan string The number is low
sebagai ekspresi.
Catatan : Anda juga dapat menggunakan built-in error konstruktor lain untuk kesalahan standar: TypeError
, SyntaxError
, ReferenceError
, EvalError
, InternalError
, dan RangeError
.
Sebagai contoh,
throw new ReferenceError('this is reference error');
Buat Ulang Pengecualian
Anda juga dapat menggunakan throw
pernyataan di dalam catch
blok untuk memunculkan kembali pengecualian. Sebagai contoh,
const number = 5; try ( // user-defined throw statement throw new Error('This is the throw'); ) catch(error) ( console.log('An error caught'); if( number + 8> 10) ( // statements to handle exceptions console.log('Error message: ' + error); console.log('Error resolved'); ) else ( // cannot handle the exception // rethrow the exception throw new Error('The value is low'); ) )
Keluaran
Kesalahan tertangkap Pesan kesalahan: Kesalahan: Ini adalah lemparan Kesalahan diselesaikan
Dalam program di atas, throw
pernyataan digunakan di dalam try
blok untuk menangkap pengecualian. Dan throw
pernyataan tersebut ditarik kembali di catch
blok yang dijalankan jika catch
blok tidak dapat menangani pengecualian.
Di sini, catch
blok menangani pengecualian dan tidak ada kesalahan yang terjadi. Oleh karena itu, throw
pernyataan tersebut tidak ditarik kembali.
Jika kesalahan tidak ditangani oleh blok penangkap, pernyataan lemparan akan ditampilkan kembali dengan pesan kesalahan Kesalahan Tidak Tertangkap: Nilainya rendah