Оператор выброса JavaScript

В этом руководстве вы узнаете об операторах throw в JavaScript с помощью примеров.

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

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

Оператор выброса JavaScript

Синтаксис оператора throw:

 throw expression;

Здесь expressionуказывается значение исключения.

Например,

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

Примечание . Выражение может быть строковым, логическим, числом или значением объекта.

Бросок JavaScript с помощью try… catch

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

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

Примечание . Когда выполняется инструкция throw, она выходит из блока и переходит в 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, оператор throw будет повторно выдан с сообщением об ошибке Uncaught Error: The value is low

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