Спробуйте JavaScript ... зловити ... нарешті Заява

У цьому підручнику ви дізнаєтеся про оператори try… catch … konačno для обробки винятків у JavaScript за допомогою прикладів.

Ці try, catchта finallyблоки використовуються для обробки винятків (типу помилки). Перш ніж дізнатися про них, потрібно знати про типи помилок у програмуванні.

Типи помилок

У програмуванні в коді можуть бути два типи помилок:

Помилка синтаксису : Помилка в синтаксисі. Наприклад, якщо ви пишете consol.log('your result');, вищевказана програма видає синтаксичну помилку. Орфографія consoleє помилкою у наведеному вище коді.

Помилка виконання : цей тип помилки виникає під час виконання програми. Наприклад,
виклик недійсної функції або змінної.

Ці помилки, що виникають під час виконання, називаються винятками . Тепер давайте подивимося, як ви можете впоратися з цими винятками.

Спробуйте JavaScript … Заява

Оператор try… catchвикористовується для обробки винятків. Його синтаксис:

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

Основний код знаходиться всередині tryблоку. Під час виконання tryблоку, якщо виникає помилка, вона переходить до catchблоку. catchБлок обробляє помилки , як в заявах про улов.

Якщо помилки не виникає, код всередині tryблоку виконується, а catchблок пропускається.

Приклад 1: Відображення недекларованої змінної

 // 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); )

Вихідні дані

 NaN Помилка виявлена ​​Повідомлення про помилку: ReferenceError: a не визначено

У наведеній вище програмі змінна не визначена. При спробі надрукувати змінну програма видає помилку. Ця помилка виявлена ​​в catchблоці.

Спробуйте JavaScript … ловіть … нарешті Заява

Ви також можете використовувати try… catch… finallyоператор для обробки винятків. finallyБлок виконується як , коли код виконується успішно , або в разі виникнення помилки.

Синтаксис try… catch… finallyблоку:

 try ( // try_statements ) catch(error) ( // catch_statements ) finally() ( // codes that gets executed anyway )

Приклад 2: спробуйте… зловити… нарешті Приклад

 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'); )

Вихідні дані

 NaN Виявлено помилку Повідомлення про помилку: ReferenceError: a не визначено Нарешті буде виконано кожен раз

У наведеній вище програмі виникає помилка, і ця помилка catchблокується. finallyБлок буде виконуватися в будь-якій ситуації (якщо програма виконується успішно , або в разі виникнення помилки).

Примітка : Вам потрібно використовувати catchабо finallyтвердження за tryтвердженням. В іншому випадку програма видасть помилку Uncaught SyntaxError: Відсутній улов або нарешті після спроби.

Спробуйте JavaScript … зловити в setTimeout

try… catchЧи не буде ловити виключення , якщо це сталося в « приурочений » код, як і в SetTimeout (). Наприклад,

 try ( setTimeout(function() ( // error in the code ), 3000); ) catch (e) ( console.log( "won't work" ); )

Вищевказане try… catchне буде працювати, оскільки движок вже залишив try… catchконструкцію, а функція виконується пізніше.

try… catchБлок повинен бути всередині цієї функції , щоб зловити виключення всередині таймерної функції. Наприклад,

 setTimeout(function() ( try ( // error in the code ) catch ( console.log( "error is caught" ); ) ), 3000);

Ви також можете використовувати throwоператор із try… catchоператором для використання визначених користувачем винятків. Наприклад, певне число ділиться на 0 . Якщо ви хочете розглянути Infinityяк помилку в програмі, тоді ви можете створити визначений користувачем виняток, використовуючи throwоператор для обробки цієї умови.

Ви дізнаєтесь про Заява про викид JavaScript у наступному підручнику.

Цікаві статті...