Изявление за хвърляне на JavaScript

В този урок ще научите за инструкциите за хвърляне на JavaScript с помощта на примери.

В предишния урок се научихте да обработвате изключения с помощта на JavaScript try… catch изявление. Операторите try and catch обработват изключенията по стандартен начин, предоставен от JavaScript. Можете обаче да използвате throwизраза, за да предадете дефинирани от потребителя изключения.

В JavaScript throwизявлението обработва дефинирани от потребителя изключения. Например, ако определен брой е разделен на 0 и ако трябва да се разгледа Infinityкато изключение, можете да използвате throwизраза, за да се справите с това изключение.

Израз на хвърляне на JavaScript

Синтаксисът на оператора хвърляне е:

 throw expression;

Тук expressionуказва стойността на изключението.

Например,

 const number = 5; throw number/0; // generate an exception when divided by 0

Забележка : Изразът може да бъде низ, булева стойност, число или стойност на обект.

JavaScript хвърляне с опит … улов

Синтаксисът на try… catch… throwе:

 try ( // body of try throw exception; ) catch(error) ( // body of catch )

Забележка : Когато операторът хвърляне се изпълни, той излиза от блока и отива в catchблока. И кодът под throwоператора не се изпълнява.

Пример 1: опитайте … хванете … хвърлете Пример

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

Изход

 Уловена грешка Съобщение за грешка: Грешка: Номерът е нисък

В горната програма се проверява състояние. Ако числото е по-малко от 51 , се появява грешка. И тази грешка се изхвърля с помощта на throwизявлението.

Операторът throwопределя низа The number is lowкато израз.

Забележка : Можете да използвате и други вградени грешка конструктори за стандартни грешки: TypeError, SyntaxError, ReferenceError, EvalError, InternalError, и RangeError.

Например,

 throw new ReferenceError('this is reference error');

Възстановете изключение

Можете също да използвате throwинструкция вътре в catchблока, за да възстановите изключение. Например,

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

Изход

 Уловена грешка Съобщение за грешка: Грешка: Това е разрешена грешка при хвърляне

В горната програма throwизразът се използва в рамките на tryблока за улавяне на изключение. И throwизявлението се прехвърля в catchблока, който се изпълнява, ако catchблокът не може да се справи с изключението.

Тук catchблокът обработва изключението и не възниква грешка. Следователно, throwизявлението не се прехвърля.

Ако грешката не бъде обработена от блока catch, изявлението хвърляне ще бъде прехвърлено със съобщение за грешка Uncaught Error: Стойността е ниска

Интересни статии...