В этом руководстве вы узнаете об операторах 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