Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Что такое Error Boundaries в React и как они помогают в обработке ошибок?
Error Boundaries — это специальные компоненты в React, которые позволяют перехватывать и обрабатывать ошибки, возникшие в их дочерних компонентах. Они предотвращают полное разрушение приложения, позволяя вместо этого отобразить запасной UI, когда происходит ошибка. Error Boundaries работают только для ошибок, возникающих во время рендеринга, а не для ошибок в обработчиках событий или асинхронном коде.
Как добавить обработку ошибок маршрутов (error handling routes)?
Обработка ошибок в React Router осуществляется через свойство errorElement для маршрута или через глобальный обработчик ошибок на уровне роутера. Ошибки могут быть отображены с помощью компонента ошибки.
Чем полезен useRouteError, и в каких ситуациях его использовать?
useRouteError позволяет получить ошибку, возникшую в loader или action, и отобразить её пользователю. Он используется в errorElement маршрутов для показа кастомных страниц ошибок.
В чем разница выводов – throw 'message' и throw new Error('message')?
throw 'message' — выбрасывает строку, но без стека вызовов и деталей ошибки.
throw new Error('message') — создает объект ошибки с stack, name и другими свойствами, что упрощает отладку.
Можно ли создать собственный тип ошибки (custom error type)? Как?
Да, можно создать собственный тип ошибки. Для этого нужно создать класс, который наследуется от встроенного класса Error, и добавить необходимые свойства и методы. В конструкторе обязательно нужно вызвать super() и установить Object.setPrototypeOf(this, CustomError.prototype) для правильной работы instanceof.
Почему при использовании let и const возникает ReferenceError
Можно ли выбросить ошибку внутри then и как она будет обработана
Рейтинг:
5
Сложность:
7
let и const поднимаются (hoisting есть), но не инициализируются сразу. До строки объявления переменная находится в TDZ, и любое обращение к ней приводит к ReferenceError. Это сделано намеренно, чтобы избежать скрытых багов, когда код читает переменную до ее логического объявления. В отличие от var, где до объявления возвращается undefined, let/const сразу сигнализируют об ошибке.
Рейтинг:
5
Сложность:
7
Да, внутри then можно выбросить ошибку с помощью throw. Такая ошибка автоматически превращает Promise в rejected. Она будет поймана ближайшим catch ниже по цепочке. По сути, throw внутри then эквивалентен return Promise.reject(error).
Рейтинг:
4
Сложность:
6
Рейтинг:
3
Сложность:
7
Рейтинг:
2
Сложность:
8
Рейтинг:
3
Сложность:
6
Рейтинг:
3
Сложность:
5