Специализация
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 в телеграм
В чем разница между try-with-resources и try-catch-finally при работе с ресурсами?
try-with-resources автоматически закрывает ресурсы, такие как потоки или файлы, после завершения блока. В try-catch-finally закрытие ресурсов нужно обрабатывать вручную в блоке finally, что увеличивает объем кода и может привести к ошибкам.
Расскажите про обработку исключений в PHP (try / catch / finally)
Исключения в PHP обрабатываются с помощью try, catch и finally. Код, который может выбросить исключение, помещается в try. В catch происходит обработка ошибки. Блок finally выполняется всегда, независимо от того, была ошибка или нет.
В каких ситуациях целесообразно использовать finally?
finally используют, когда нужно выполнить код независимо от того, произошло исключение или нет. Чаще всего там освобождают ресурсы: закрывают соединения, файлы, транзакции. Этот блок выполнится даже при return внутри try. Он помогает избежать утечек ресурсов и некорректных состояний.
Может ли finally не выполниться и в каких случаях?
В большинстве случаев finally выполняется всегда. Однако существуют ситуации, когда он может не выполниться. Это связано не с логикой Java-кода, а с аварийным завершением JVM. Например, при вызове System.exit() или фатальной ошибке. Поэтому finally не является абсолютной гарантией.
В каком порядке выполняются then, catch и finally у Promise
then вызывается при успешном выполнении Promise, catch — при ошибке, а finally — всегда, независимо от результата. finally выполняется после then или catch, но не меняет значение, если сам не выбрасывает ошибку. Все эти колбэки выполняются как микротаски. Порядок строго следует цепочке.
Почему then и finally выполняются после синхронного кода?
Рейтинг:
5
Сложность:
8
then и finally выполняются после синхронного кода, потому что они ставятся в очередь микрозадач. JavaScript сначала выполняет весь синхронный код в текущем стеке вызовов. Только после этого event loop начинает обрабатывать микрозадачи. Поэтому обработчики промисов всегда выполняются “чуть позже”.
Рейтинг:
2
Сложность:
6
Рейтинг:
5
Сложность:
6
Рейтинг:
4
Сложность:
5
Рейтинг:
4
Сложность:
6
Рейтинг:
5
Сложность:
8