В този урок ще научите за инструкциите за хвърляне на 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: Стойността е ниска