Как и Java Language, JavaScript может бросить исключения с помощью высказывания. В отличие от Java Language, JavaScript может бросить все типы значений с помощью операторов, не только чтобы бросить объекты ошибки.
Кода -копия выглядит следующим образом:
// бросить объект ошибки.
пытаться{
бросить новую ошибку («Сообщение в объекте ошибки»);
} catch (e) {
console.log (e); // Ошибка: сообщение в объекте ошибки
}
пытаться{
бросить «необработанное сообщение»;
} catch (сообщение) {
console.log (сообщение); // Raw Message
console.log (typeof message); // string
}
пытаться{
бросить 42;
} catch (code) {
Console.log (code); // 42
console.log (typeof code); // номер
}
Как и Java Language, если исключение не будет завоевано каким -либо заявлением о выловке, исключение в конечном итоге будет доставлено пользователю:
Кода -копия выглядит следующим образом:
пытаться{
// бросить новую ошибку («ошибка тестирования»); // ошибка будет выбрана. Ошибка: ошибка теста
} окончательно{
}
пытаться{
бросить 42; // ошибка будет выбрана. Ошибка: 42
} окончательно{
}
Что касается исключений для броска, JavaScript также использует операторы Try/Catch/, наконец. Правила использования: требуется попытка, поймайте и, наконец, являются дополнительными утверждениями, но, по крайней мере, один из улова и, наконец, должен появиться.
В операторе Catch параметр E (или любое другое имя законной переменной) может быть определено для хранения выбросов выбросов. Внутри оператора Catch этот параметр может использоваться в качестве локальной переменной. В отличие от других переменных использования в JavaScript, переменные параметров в операторах CACT действительны только внутри оператора CACT (область этой переменной ограничена оператором Catch).
Для окончательных заявлений код, наконец, будет выполнен независимо от того, есть ли исключение, которое будет сделано в попытке. Детали включают:
1. Не происходит исключения в попытке. Когда оператор TRY будет выполнен, код в наконец будет выполнен.
2. Не происходит исключения в Try, но когда код try выходит из строя из -за выполнения перерыва, продолжения или возврата операторов, код, наконец, будет выполнен.
3. Исключение происходит в Try. После того, как исключение обрабатывается оператором Catch, наконец -то выполняется код.
4. Исключение происходит в Try, но когда исключение должно быть продолжено из -за отсутствия оператора Catch, код, наконец, будет выполнен. Стоит отметить, что в случае, когда оператор Catch отсутствует, JavaScript сначала выполнит код наконец, а затем продолжит бросать исключение вверх.
В конце концов, в случае разрыва, продолжить или возвращать операторы, JavaScript будет напрямую выполнять эти операторы и игнорировать перерыв, продолжить или возвращать операторы, которые могут существовать в коде TRY; Даже если оператор Catch отсутствует, что приведет к исключению, о котором необходимо сообщить, JS отбросит информацию о отчетности о исключениях и продолжит выполнять перерыв, продолжить или возвращать операторы в коде, наконец. Аналогичным образом, если исключение будет добавлено в коде, наконец, JavaScript отбросит все перерывы, продолжить или возвращать операторы в коде TRY, а также отбросит возможное поведение отчетности об исключении, а также только исключения в коде, наконец,.