JavaScript cuba ... tangkap ... akhirnya Pernyataan

Dalam tutorial ini, anda akan belajar tentang pernyataan… catch… akhirnya pernyataan untuk menangani pengecualian dalam JavaScript dengan bantuan contoh.

The try, catchdan finallyblok 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 consoleadalah 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… catchkenyataan digunakan untuk mengendalikan pengecualian. Sintaksnya adalah:

 try ( // body of try ) catch(error) ( // body of catch )

Kod utama ada di dalam tryblok. Semasa menjalankan tryblok, jika ada kesalahan, ia menuju ke catchblok. The catchblok mengendalikan kesilapan seperti penyata tangkapan.

Sekiranya tiada ralat, kod di dalam tryblok dijalankan dan catchblok 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 catchtersekat di blok.

JavaScript cuba… tangkap… akhirnya Pernyataan

Anda juga boleh menggunakan try… catch… finallypernyataan untuk menangani pengecualian. The finallyblok melaksanakan kedua-dua apabila kod berjalan berjaya atau jika ralat berlaku.

Sintaks try… catch… finallyblok 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 catchblok. The finallyblok akan melaksanakan dalam apa jua keadaan (jika program ini berjalan dengan jayanya atau jika ralat berlaku).

Catatan : Anda perlu menggunakan catchatau finallypernyataan demi trypernyataan. Jika tidak, program akan menimbulkan ralat Uncaught SyntaxError: Hilang tangkapan atau akhirnya setelah mencuba.

Cuba cuba… tangkap di setTimeout

Tidak try… catchakan 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… catchtidak akan berfungsi kerana enjin sudah meninggalkan try… catchkonstruk dan fungsinya dilaksanakan kemudian.

The try… catchblok 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 throwpernyataan dengan try… catchpernyataan untuk menggunakan pengecualian yang ditentukan pengguna. Contohnya, nombor tertentu dibahagi dengan 0 . Sekiranya anda ingin menganggap Infinitysebagai kesalahan dalam program, maka anda boleh membuang pengecualian yang ditentukan pengguna menggunakan throwpernyataan untuk menangani keadaan tersebut.

Anda akan belajar mengenai Penyataan Lontaran JavaScript dalam tutorial seterusnya.

Artikel menarik...