Dalam tutorial ini, anda akan belajar mengenai pernyataan lemparan JavaScript dengan bantuan contoh.
Dalam tutorial sebelumnya, anda belajar menangani pengecualian menggunakan penyataan cuba … pernyataan tangkapan. Pernyataan cubaan dan tangkapan menangani pengecualian dengan cara standard yang disediakan oleh JavaScript. Walau bagaimanapun, anda boleh menggunakan throw
pernyataan untuk melepasi pengecualian yang ditentukan pengguna.
Dalam JavaScript, throw
pernyataan tersebut menangani pengecualian yang ditentukan pengguna. Sebagai contoh, jika nombor tertentu dibahagi dengan 0 , dan jika anda perlu mempertimbangkan Infinity
sebagai pengecualian, anda boleh menggunakan throw
pernyataan untuk menangani pengecualian tersebut.
Penyataan lontaran JavaScript
Sintaks pernyataan lemparan adalah:
throw expression;
Di sini, expression
menentukan nilai pengecualian.
Sebagai contoh,
const number = 5; throw number/0; // generate an exception when divided by 0
Catatan : Ungkapan itu boleh berupa string, boolean, number, atau value.
Lempar JavaScript dengan cubaan … tangkap
Sintaksnya try… catch… throw
adalah:
try ( // body of try throw exception; ) catch(error) ( // body of catch )
Catatan : Apabila pernyataan lemparan dijalankan, ia keluar dari blok dan menuju ke catch
blok. Dan kod di bawah throw
pernyataan tidak dilaksanakan.
Contoh 1: cuba… tangkap… baling 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); )
Pengeluaran
Ralat terperangkap Mesej ralat: Ralat: Jumlahnya rendah
Dalam program di atas, keadaan diperiksa. Sekiranya bilangannya kurang dari 51 , kesalahan akan dilemparkan. Dan kesalahan itu dilemparkan menggunakan throw
pernyataan tersebut.
The throw
kenyataan menentukan rentetan The number is low
sebagai ungkapan.
Nota : Anda juga boleh menggunakan pengeluar terbina dalam kesesatan yang lain bagi sebarang kesilapan standard: TypeError
, SyntaxError
, ReferenceError
, EvalError
, InternalError
, dan RangeError
.
Sebagai contoh,
throw new ReferenceError('this is reference error');
Tetapkan Semula Pengecualian
Anda juga boleh menggunakan throw
penyataan di dalam catch
blok untuk melihat semula 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'); ) )
Pengeluaran
Ralat ditangkap Mesej ralat: Ralat: Ini adalah Ralat lemparan yang diselesaikan
Dalam program di atas, throw
pernyataan digunakan dalam try
blok untuk mendapatkan pengecualian. Dan throw
pernyataan tersebut disusun semula dalam catch
blok yang akan dilaksanakan jika catch
blok tersebut tidak dapat menangani pengecualian.
Di sini, catch
blok menangani pengecualian dan tidak ada ralat berlaku. Oleh itu, throw
penyataan tersebut tidak dipikirkan semula.
Sekiranya ralat tidak ditangani oleh blok tangkapan, pernyataan lemparan akan diketengahkan semula dengan mesej kesalahan