Способы обработки JаvаSсriрt-ошибок

Содержание

Слайд 2

Ошибки

Грамотная стратегия обработки ошибок должна информировать пользователей о том, что происходит, не

Ошибки Грамотная стратегия обработки ошибок должна информировать пользователей о том, что происходит,
отпугивая их, но для реализации такой процедуры нужно уметь применять разные способы обработки jаvаSсriрt-ошибок по мере их возникновения.

Слайд 3

Ошибки

Они могут возникать из-за наших промахов, неожиданного ввода пользователя, неправильного ответа сервера

Ошибки Они могут возникать из-за наших промахов, неожиданного ввода пользователя, неправильного ответа
и по тысяче других причин.
Обычно скрипт в случае ошибки «падает» (сразу же останавливается), с выводом ошибки в консоль.

Слайд 4

try … catch

В третьей редакции ЕСМА-262 для обработки исключений в JavaScript была

try … catch В третьей редакции ЕСМА-262 для обработки исключений в JavaScript
пред­ставлена инструкция try-catch
try {
// код, который может привести к ошибке
} catch (error) {
// действия при возникновении ошибки
}

Слайд 5

try … catch

Любой код, который может привести к ошибке, следует помещать в

try … catch Любой код, который может привести к ошибке, следует помещать
раздел try, а код обработки ошибки - в раздел catch Если в разделе try происходит ошибка, выполнение кода немедленно прекращается и возобновляется с раздела catch, в который передается объект со сведениями об ошибке.

Слайд 6

try … catch

Когда возникает ошибка, JavaScript генерирует объект, содержащий её детали. Затем

try … catch Когда возникает ошибка, JavaScript генерирует объект, содержащий её детали.
этот объект передаётся как аргумент в блок catch
name (Имя ошибки. Например, для неопределённой переменной это "ReferenceError".)
message (Текстовое сообщение о деталях ошибки.)

Слайд 7

try … catch

try {
global.someNotExistentFunction();
}
catch (error) {
console.log(error.message);
}

try … catch try { global.someNotExistentFunction(); } catch (error) { console.log(error.message); }

Слайд 8

try … catch - finally

Необязательное предложение finally инструкции try-catch выполняется после нее

try … catch - finally Необязательное предложение finally инструкции try-catch выполняется после
в любом случае независимо от того, возникла ли ошибка. Ничто в разделе try или catch, даже инструкция return, не может предотвратить выполнение кода в разделе finally.

Слайд 9

try … catch

Если ошибка возникает в инструкции try-catch, браузер не уведомляет о

try … catch Если ошибка возникает в инструкции try-catch, браузер не уведомляет
ней, потому что считает, что она обрабатывается должным образом. Это идеально подходит для веб-приложений, ориентированных на пользователей без техни­ ческой подготовки, которым не имеет смысла сообщать об ошибках. С помощью try-catch можно реализовать собственный механизм обработки ошибок конкрет­ных типов.

Слайд 10

Задача 1

Создать блок обработки ошибок - при вызове несуществующей функции показывать пользователю

Задача 1 Создать блок обработки ошибок - при вызове несуществующей функции показывать
ошибку на экране “что-то пошло не так”

Слайд 11

Типы ошибок

JavaScript-oшибки делятся на несколько категорий, каждой из которых соответ­ствует особый

Типы ошибок JavaScript-oшибки делятся на несколько категорий, каждой из которых соответ­ствует особый
объект, генерируемый при ошибке. В ЕСМА-262 определены семь типов ошибок:
Error;
EvalError - ошибка, возникающая в глобальной функции;
RangeError - ошибка, возникающую при выходе числовой переменной или параметра за пределы допустимого диапазона;
ReferenceError - ошибка, возникающая при разыменовывании недопустимой ссылки;
SyntaxError - ошибка, возникающая при разборе исходного кода в функции eval();
TypeError - ошибка, возникающая при недопустимом типе для переменной или параметра;
URIError - ошибку, возникающую при передаче в функции encodeURI() или decodeURI() недопустимых параметров.

Слайд 12

Типы ошибок

Тип Error - это базовый тип, от которого наследуются все

Типы ошибок Тип Error - это базовый тип, от которого наследуются все
остальные типы ошибок. Таким образом, все они имеют набор общих свойств

Слайд 13

Оператор «throw»

Инструкцию try-catch дополняет оператор throw, с помощью которого в любое

Оператор «throw» Инструкцию try-catch дополняет оператор throw, с помощью которого в любое
время можно сгенерировать собственную ошибку. Он применяется со значением, но не налагает никаких ограничений на тип значения.
throw 12345;
throw "Hello world!";
throw true;
throw { name: "JavaScript"};

Слайд 14

Оператор «throw»

Оператор throw немедленно останавливает выполнение кода, которое возобновляет­ся только в

Оператор «throw» Оператор throw немедленно останавливает выполнение кода, которое возобновляет­ся только в
том случае, если инструкция try-catch перехватывает сгенерированное им значение.
Ошибки браузера можно имитировать, используя один из встроенных типов. Кон­структор каждого типа ошибки принимает как единственный аргумент сообщение об ошибке, например:
throw new Error("Something bad happened . " ) ;

Слайд 15

Задача 2

Создайте метод find_index(arr, value), который принимает список(массив значений) и значение. Если

Задача 2 Создайте метод find_index(arr, value), который принимает список(массив значений) и значение.
значение не найдено в списке нужно сгенерировать ошибку.

Слайд 16

Вывод сообщений на консоль

error(cooбщeнue) - выводит на консоль сообщение об ошибке;
info(cooбщeнue) -

Вывод сообщений на консоль error(cooбщeнue) - выводит на консоль сообщение об ошибке;
выводит на консоль информационное сообщение;
lоg(сообщенuе) - выводит на консоль сообщение общего характера;
warn(cooбщeнue) - выводит на консоль предупреждение.

Слайд 17

Задача 3

Функция для оценки строки: вы должны проверить любой код HTML (т.

Задача 3 Функция для оценки строки: вы должны проверить любой код HTML
Е. какие-либо теги HTML), если какой-либо код найден, вы должны вернуть false, если входные данные не являются строкой, вы должны выбросить ошибку TypeError. Если длина строки превышает 255 символов или содержит 0 символов, вы должны бросить RangeError и, наконец, если введенная строка пуста, выведите ReferenceError.
используйте regex = /(<([^>]+)>)/ig и метод test()