Исключения в Java. Часть 3. Обработка исключений. Блок try/catch.
В случае возникновения в Java исключения (exception), или исключительного события, имеет место прекращение нормального течения программы, и программа/приложение завершаются в аварийном режиме, что не является рекомендованным, и, как следствие, подобные случаи требуют в Java обработку исключений.
Использование ключевых слов try и catch позволяет производить обработку исключения в Java.
Блок try/catch размещается в начале и конце кода, который может сгенерировать исключение. Синтаксис использования try/catch выглядит как на картинке.
Код, предрасположенный к исключениям, размещается в блоке try. Оператор catch включает в себя саму обработку исключения. При возникновении исключения в блоке try, будет выполнена обработка этого исключения в блоке catch, но исключение передается в блок catch и обрабатывается только тогда, когда тип произошедшего исключения в try представлен в блоке catch (на картинке обработано исключение ArrayIndexOutOfBoundsException – номер запрашиваемого индекса массива лежит за пределами длины этого массива, именно это исключение всплывает в блоке try).
За каждым блоком try должен немедленно следовать блок catch, либо блок finally (о нем расскажу в одном из след постах).
👩💻 Наш практический курс Java–разработчика
✅ JavaStart. Подписаться
В случае возникновения в Java исключения (exception), или исключительного события, имеет место прекращение нормального течения программы, и программа/приложение завершаются в аварийном режиме, что не является рекомендованным, и, как следствие, подобные случаи требуют в Java обработку исключений.
Использование ключевых слов try и catch позволяет производить обработку исключения в Java.
Блок try/catch размещается в начале и конце кода, который может сгенерировать исключение. Синтаксис использования try/catch выглядит как на картинке.
Код, предрасположенный к исключениям, размещается в блоке try. Оператор catch включает в себя саму обработку исключения. При возникновении исключения в блоке try, будет выполнена обработка этого исключения в блоке catch, но исключение передается в блок catch и обрабатывается только тогда, когда тип произошедшего исключения в try представлен в блоке catch (на картинке обработано исключение ArrayIndexOutOfBoundsException – номер запрашиваемого индекса массива лежит за пределами длины этого массива, именно это исключение всплывает в блоке try).
За каждым блоком try должен немедленно следовать блок catch, либо блок finally (о нем расскажу в одном из след постах).
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5✍2🔥2
Что такое локальная переменная?
Anonymous Quiz
8%
Переменная, определенная вне методов, конструкторов или блоков
83%
Переменная, определенная внутри методов, конструкторов или блоков
6%
Статическая переменная, определенная вне методов, конструкторов или блоков
1%
Ни один вариант из перечисленных
2%
Посмотреть ответ
✍3👍2🎉2👨💻1
Исключения в Java. Часть 4. Многократные блоки catch.
За блоком try могут следовать несколько блоков catch.
Синтаксис многократных блоков catch выглядит следующим образом:
try {
// Защищенный код
} catch (ИсключениеТип1 e1) {
// Блок catch
} catch (ИсключениеТип2 e2) {
// Блок catch
} catch (ИсключениеТип3 e3) {
// Блок catch
}
Представленные выше операторы демонстрируют три блока catch, однако, после однократного try количество используемых блоков catch может быть произвольным. В случае возникновения исключения в try, это исключение выводится в первый блок catch в списке, если тип данных генерируемого исключения совпадает с ИсключениеТип1, – оно перехватывается в указанной области.
В обратном случае, исключение переходит ко второму оператору catch. Это продолжается до тех пор, пока не будет произведен перехват совпадающего исключения, либо оно не пройдет через все операторы, в случае чего выполнение текущего метода будет прекращено, и исключение будет перенесено к предшествующему методу в стеке вызовов.
👩💻 Наш практический курс Java–разработчика
✅ JavaStart. Подписаться
За блоком try могут следовать несколько блоков catch.
Синтаксис многократных блоков catch выглядит следующим образом:
try {
// Защищенный код
} catch (ИсключениеТип1 e1) {
// Блок catch
} catch (ИсключениеТип2 e2) {
// Блок catch
} catch (ИсключениеТип3 e3) {
// Блок catch
}
Представленные выше операторы демонстрируют три блока catch, однако, после однократного try количество используемых блоков catch может быть произвольным. В случае возникновения исключения в try, это исключение выводится в первый блок catch в списке, если тип данных генерируемого исключения совпадает с ИсключениеТип1, – оно перехватывается в указанной области.
В обратном случае, исключение переходит ко второму оператору catch. Это продолжается до тех пор, пока не будет произведен перехват совпадающего исключения, либо оно не пройдет через все операторы, в случае чего выполнение текущего метода будет прекращено, и исключение будет перенесено к предшествующему методу в стеке вызовов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👨💻3✍2
Please open Telegram to view this post
VIEW IN TELEGRAM
💯6😁4👍2👨💻1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁8💯4👍2👨💻1
Исключения в Java. Часть 5. Перехват многотипных исключений.
Начиная с Java 7, мы с вами можем произвести одинаковую обработку более чем одного исключения при использовании одного блока catch, данное свойство упрощает код, убирая лишние повторяющиеся ключевые слова catch вместе с повторяющимися скобками, которые только увеличивают количество строк.
Но важно понимать, что мы делаем одну конкретную обработку для определенных типов исключений. Если мы знаем, что можем получить другой тип исключения и, например, нам нужно по-другому его обработать (например, вывести другой текст в консоль, более информативный), то мы должны добавить ещё один блок catch на конкретное исключение.
На картинке представлена модель реализации обработки нескольких типов исключений.
👩💻 Наш практический курс Java–разработчика
✅ JavaStart. Подписаться
Начиная с Java 7, мы с вами можем произвести одинаковую обработку более чем одного исключения при использовании одного блока catch, данное свойство упрощает код, убирая лишние повторяющиеся ключевые слова catch вместе с повторяющимися скобками, которые только увеличивают количество строк.
Но важно понимать, что мы делаем одну конкретную обработку для определенных типов исключений. Если мы знаем, что можем получить другой тип исключения и, например, нам нужно по-другому его обработать (например, вывести другой текст в консоль, более информативный), то мы должны добавить ещё один блок catch на конкретное исключение.
На картинке представлена модель реализации обработки нескольких типов исключений.
Please open Telegram to view this post
VIEW IN TELEGRAM
✍3👍2🔥2
Что из перечисленного является потокобезопасным?
Anonymous Quiz
26%
StringBuilder
52%
StringBuffer
7%
Оба из вышеперечисленных
9%
Ни один из вышеперечисленных
6%
Посмотреть ответ
👍5🎉4✍1
Исключения в Java. Часть 6.1. Ключевые слова throws/throw.
В случае если метод не может осуществить обработку контролируемого исключения, производится соответствующее уведомление при использовании ключевого слова throws в Java.
Ключевое слово throws появляется в конце сигнатуры метода.
При использовании ключевого слова throw вы можете произвести обработку вновь выявленного исключения, либо исключения, которое было только что перехвачено.
Следует внимательно различать ключевые слова throw и throws в Java, так как throws используется для отложенной обработки контролируемого исключения, а throw, в свою очередь, используется для вызова заданного исключения.
Представленный на картинке метод отображает, что им генерируется RemoteException. В данном методе у нас нет обработки исключения с помощью блока try/catch, а значит обработать это исключение мы должны будем в другом методе, в том, в котором этот метод (deposit(double amount)) будет вызываться далее.
👩💻 Наш практический курс Java–разработчика
✅ JavaStart. Подписаться
В случае если метод не может осуществить обработку контролируемого исключения, производится соответствующее уведомление при использовании ключевого слова throws в Java.
Ключевое слово throws появляется в конце сигнатуры метода.
При использовании ключевого слова throw вы можете произвести обработку вновь выявленного исключения, либо исключения, которое было только что перехвачено.
Следует внимательно различать ключевые слова throw и throws в Java, так как throws используется для отложенной обработки контролируемого исключения, а throw, в свою очередь, используется для вызова заданного исключения.
Представленный на картинке метод отображает, что им генерируется RemoteException. В данном методе у нас нет обработки исключения с помощью блока try/catch, а значит обработать это исключение мы должны будем в другом методе, в том, в котором этот метод (deposit(double amount)) будет вызываться далее.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3✍2👨💻1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁16💯3❤2👍2🤓1
Исключения в Java. Часть 6.2. Ключевые слова throws/throw.
Метод может объявить о том, что им генерируется более чем одно исключение, в случае чего исключения представляются в виде перечня, отделенные друг от друга запятыми и стоящие после сигнатуры метода.
К примеру, следующий метод на Картинке оповещает о том, что им генерируются RemoteException и InsufficientFundsException.
👩💻 Наш практический курс Java–разработчика
✅ JavaStart. Подписаться
Метод может объявить о том, что им генерируется более чем одно исключение, в случае чего исключения представляются в виде перечня, отделенные друг от друга запятыми и стоящие после сигнатуры метода.
К примеру, следующий метод на Картинке оповещает о том, что им генерируются RemoteException и InsufficientFundsException.
Please open Telegram to view this post
VIEW IN TELEGRAM
✍2👍2👨💻2❤1
Какое значение переменной boolean в Java по умолчанию?
Anonymous Quiz
3%
0
11%
null
63%
false
19%
true
3%
undefined
2%
Посмотреть ответ
👍5✍2👨💻2
Исключения в Java. Часть 7. Блок finally.
В Java finally следует за блоком catch. Блок finally в коде выполняется всегда независимо от наличия исключения.
Использование блока finally позволяет запустить какой-либо метод, предназначенный для очистки, независимо от того, что происходит в защищенном коде в блоке try.
Синтаксис можно увидеть на Картинке.
👩💻 Наш практический курс Java–разработчика
✅ JavaStart. Подписаться
В Java finally следует за блоком catch. Блок finally в коде выполняется всегда независимо от наличия исключения.
Использование блока finally позволяет запустить какой-либо метод, предназначенный для очистки, независимо от того, что происходит в защищенном коде в блоке try.
Синтаксис можно увидеть на Картинке.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👨💻3✍2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁9👍2🔥2
Конструкция try–with–resources в Java.
Наверное, один из самых распространенных вопросов на собеседовании на junior java разработчика или trainee – Что такое try–with–resources?
В норме, при использовании различных видов ресурсов, таких как потоки, соединения и др., нам предстоит закрыть их непосредственно при использовании блока finally.
Конструкция try–with–resources, также именуемая как автоматическое управление ресурсами, представляет новый механизм обработки исключений, который был представлен в 7-ой версии Java, осуществляя автоматическое закрытие всех ресурсов, используемых в рамках блока try catch. А значит нам больше не нужен блок finally в таком случае.
Чтобы воспользоваться данным оператором, вам всего лишь нужно разместить заданные ресурсы в круглых скобках ключевого слова try, после чего созданный ресурс будет автоматически закрыт по окончании блока. На картинке представлен синтаксис конструкции try–with–resources.
👩💻 Наш практический курс Java–разработчика
✅ JavaStart. Подписаться
Наверное, один из самых распространенных вопросов на собеседовании на junior java разработчика или trainee – Что такое try–with–resources?
В норме, при использовании различных видов ресурсов, таких как потоки, соединения и др., нам предстоит закрыть их непосредственно при использовании блока finally.
Конструкция try–with–resources, также именуемая как автоматическое управление ресурсами, представляет новый механизм обработки исключений, который был представлен в 7-ой версии Java, осуществляя автоматическое закрытие всех ресурсов, используемых в рамках блока try catch. А значит нам больше не нужен блок finally в таком случае.
Чтобы воспользоваться данным оператором, вам всего лишь нужно разместить заданные ресурсы в круглых скобках ключевого слова try, после чего созданный ресурс будет автоматически закрыт по окончании блока. На картинке представлен синтаксис конструкции try–with–resources.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7✍3💯1
Что из нижеследующего не является примитивным типом данных в Java?
Anonymous Quiz
6%
float
78%
void
7%
char
8%
short
2%
Посмотреть ответ
✍3🎉3👍2
Исключения в Java. Часть 9. Создание своих собственных исключений.
Мы можем создать свои собственные исключения в среде Java, определив собственный класс исключений, как показано ниже:
class MyException extends Exception {
}
Нам лишь необходимо расширить предопределенный java класс Exception с целью создания собственного исключения.
Наш класс MyException исключительных ситуаций, определяемых пользователем, расширяет класс Exception, делая его контролируемым исключением. Класс исключений, подобно всем остальным классам, содержит используемые поля и методы.
👩💻 Наш практический курс Java–разработчика
✅ JavaStart. Подписаться
Мы можем создать свои собственные исключения в среде Java, определив собственный класс исключений, как показано ниже:
class MyException extends Exception {
}
Нам лишь необходимо расширить предопределенный java класс Exception с целью создания собственного исключения.
Наш класс MyException исключительных ситуаций, определяемых пользователем, расширяет класс Exception, делая его контролируемым исключением. Класс исключений, подобно всем остальным классам, содержит используемые поля и методы.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3✍2👨💻2
Абстрактный класс в Java. Часть 1.
Сегодня давайте разберемся с одной важной концепцией в языке программирования Java - абстрактными классами.
🤔 Что такое абстрактный класс?
Абстрактный класс в Java - это класс, который не может быть инстанциирован, т.е. создан как объект напрямую. Его назначение - предоставить базовый функционал для производных классов.
Абстрактные классы могут содержать поля и абстрактные методы, которые должны быть реализованы в подклассах, а также они могут содержать обычные, уже определенные, методы.
📝 Пример абстрактного класса на Картинке.
Производный класс обязан переопределить и реализовать все абстрактные методы, которые имеются в базовом абстрактном классе.
Также следует учитывать, что если класс имеет хотя бы один абстрактный метод, то данный класс должен быть определен как абстрактный.
✅ Основные моменты:
- Абстрактные классы помогают в создании иерархии классов.
- Абстрактные методы в абстрактных классах должны быть реализованы в подклассах.
- Нельзя создать экземпляр абстрактного класса напрямую.
Абстрактные классы в основном используются, чтобы создавать четкую структуру кода и облегчить его поддержку в будущем.
Далее рассмотрим практический пример применения абстрактного класса.
👩💻 Наш практический курс Java–разработчика
✅ JavaStart. Подписаться
Сегодня давайте разберемся с одной важной концепцией в языке программирования Java - абстрактными классами.
🤔 Что такое абстрактный класс?
Абстрактный класс в Java - это класс, который не может быть инстанциирован, т.е. создан как объект напрямую. Его назначение - предоставить базовый функционал для производных классов.
Абстрактные классы могут содержать поля и абстрактные методы, которые должны быть реализованы в подклассах, а также они могут содержать обычные, уже определенные, методы.
📝 Пример абстрактного класса на Картинке.
Производный класс обязан переопределить и реализовать все абстрактные методы, которые имеются в базовом абстрактном классе.
Также следует учитывать, что если класс имеет хотя бы один абстрактный метод, то данный класс должен быть определен как абстрактный.
✅ Основные моменты:
- Абстрактные классы помогают в создании иерархии классов.
- Абстрактные методы в абстрактных классах должны быть реализованы в подклассах.
- Нельзя создать экземпляр абстрактного класса напрямую.
Абстрактные классы в основном используются, чтобы создавать четкую структуру кода и облегчить его поддержку в будущем.
Далее рассмотрим практический пример применения абстрактного класса.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5✍2👨💻2
Какой тип данных лучше всего подходит для хранения цены товара в магазине?
Anonymous Quiz
3%
char
14%
int
2%
boolean
79%
double
2%
Посмотреть ответ
✍3👍1🎉1👨💻1
Какой из этих классов Java является неизменяемым (immutable)?
Anonymous Quiz
14%
StringBuilder
72%
String
4%
int
7%
CharSequence
3%
Посмотреть ответ
✍4👍4🎉1