Dalam tutorial ini, anda akan belajar tentang pernyataan… catch… akhirnya pernyataan untuk menangani pengecualian dalam JavaScript dengan bantuan contoh.
The try
, catch
dan finally
blok digunakan untuk menangani pengecualian (jenis kesalahan). Sebelum anda mengetahui tentangnya, anda perlu mengetahui jenis kesalahan dalam pengaturcaraan.
Jenis Kesalahan
Dalam pengaturcaraan, terdapat dua jenis kesalahan dalam kod:
Ralat Sintaks : Ralat dalam sintaks. Contohnya, jika anda menulis consol.log('your result');
, program di atas menimbulkan ralat sintaks. Ejaan console
adalah kesalahan dalam kod di atas.
Runtime Error : Jenis ralat ini berlaku semasa pelaksanaan program. Contohnya,
memanggil fungsi atau pemboleh ubah yang tidak sah.
Kesalahan ini yang berlaku semasa runtime disebut pengecualian . Sekarang, mari kita lihat bagaimana anda dapat menangani pengecualian ini.
Cuba cuba… tangkap Penyataan
The try… catch
kenyataan digunakan untuk mengendalikan pengecualian. Sintaksnya adalah:
try ( // body of try ) catch(error) ( // body of catch )
Kod utama ada di dalam try
blok. Semasa menjalankan try
blok, jika ada kesalahan, ia menuju ke catch
blok. The catch
blok mengendalikan kesilapan seperti penyata tangkapan.
Sekiranya tiada ralat, kod di dalam try
blok dijalankan dan catch
blok dilangkau.
Contoh 1: Paparkan Pembolehubah Tidak Diisytiharkan
// program to show try… catch in a program const numerator= 100, denominator = 'a'; try ( console.log(numerator/denominator); // forgot to define variable a console.log(a); ) catch(error) ( console.log('An error caught'); console.log('Error message: ' + error); )
Pengeluaran
NaN Ralat ditangkap Mesej ralat: ReferenceError: a tidak ditentukan
Dalam program di atas, pemboleh ubah tidak ditentukan. Semasa anda mencetak pemboleh ubah, program akan menimbulkan kesalahan. Kesalahan itu catch
tersekat di blok.
JavaScript cuba… tangkap… akhirnya Pernyataan
Anda juga boleh menggunakan try… catch… finally
pernyataan untuk menangani pengecualian. The finally
blok melaksanakan kedua-dua apabila kod berjalan berjaya atau jika ralat berlaku.
Sintaks try… catch… finally
blok adalah:
try ( // try_statements ) catch(error) ( // catch_statements ) finally() ( // codes that gets executed anyway )
Contoh 2: cuba… tangkap… akhirnya Contoh
const numerator= 100, denominator = 'a'; try ( console.log(numerator/denominator); console.log(a); ) catch(error) ( console.log('An error caught'); console.log('Error message: ' + error); ) finally ( console.log('Finally will execute every time'); )
Pengeluaran
NaN Ralat yang ditangkap Mesej ralat: ReferenceError: a tidak ditentukan Akhirnya akan dilaksanakan setiap masa
Dalam program di atas, ralat berlaku dan kesalahan itu ditangkap oleh catch
blok. The finally
blok akan melaksanakan dalam apa jua keadaan (jika program ini berjalan dengan jayanya atau jika ralat berlaku).
Catatan : Anda perlu menggunakan catch
atau finally
pernyataan demi try
pernyataan. Jika tidak, program akan menimbulkan ralat Uncaught SyntaxError: Hilang tangkapan atau akhirnya setelah mencuba.
Cuba cuba… tangkap di setTimeout
Tidak try… catch
akan mendapat pengecualian jika berlaku dalam kod " waktunya ", seperti di setTimeout (). Sebagai contoh,
try ( setTimeout(function() ( // error in the code ), 3000); ) catch (e) ( console.log( "won't work" ); )
Perkara di atas try… catch
tidak akan berfungsi kerana enjin sudah meninggalkan try… catch
konstruk dan fungsinya dilaksanakan kemudian.
The try… catch
blok mesti di dalam fungsi itu untuk menangkap pengecualian dalam fungsi yang ditetapkan masa. Sebagai contoh,
setTimeout(function() ( try ( // error in the code ) catch ( console.log( "error is caught" ); ) ), 3000);
Anda juga boleh menggunakan throw
pernyataan dengan try… catch
pernyataan untuk menggunakan pengecualian yang ditentukan pengguna. Contohnya, nombor tertentu dibahagi dengan 0 . Sekiranya anda ingin menganggap Infinity
sebagai kesalahan dalam program, maka anda boleh membuang pengecualian yang ditentukan pengguna menggunakan throw
pernyataan untuk menangani keadaan tersebut.
Anda akan belajar mengenai Penyataan Lontaran JavaScript dalam tutorial seterusnya.