Многократные блоки catch в Java.
За блоком try могут следовать несколько блоков catch.
Синтаксис многократных блоков catch выглядит следующим образом:
try {
// Защищенный код
} catch(ИсключениеТип1 e1) {
// Блок catch
} catch(ИсключениеТип2 e2) {
// Блок catch
} catch(ИсключениеТип3 e3) {
// Блок catch
}
Представленные выше операторы демонстрируют три блока catch, однако, после однократного try количество используемых блоков catch может быть произвольным. В случае возникновения исключения в try, это исключение выводится в первый блок catch в списке, если тип данных генерируемого исключения совпадает с ИсключениеТип1, – оно перехватывается в указанной области. В обратном случае, исключение переходит ко второму оператору catch. Это продолжается до тех пор, пока не будет произведен перехват совпадающего исключения, либо оно не пройдет через все операторы, в случае чего выполнение текущего метода будет прекращено, и исключение будет перенесено к предшествующему методу в стеке вызовов.
За блоком try могут следовать несколько блоков catch.
Синтаксис многократных блоков catch выглядит следующим образом:
try {
// Защищенный код
} catch(ИсключениеТип1 e1) {
// Блок catch
} catch(ИсключениеТип2 e2) {
// Блок catch
} catch(ИсключениеТип3 e3) {
// Блок catch
}
Представленные выше операторы демонстрируют три блока catch, однако, после однократного try количество используемых блоков catch может быть произвольным. В случае возникновения исключения в try, это исключение выводится в первый блок catch в списке, если тип данных генерируемого исключения совпадает с ИсключениеТип1, – оно перехватывается в указанной области. В обратном случае, исключение переходит ко второму оператору catch. Это продолжается до тех пор, пока не будет произведен перехват совпадающего исключения, либо оно не пройдет через все операторы, в случае чего выполнение текущего метода будет прекращено, и исключение будет перенесено к предшествующему методу в стеке вызовов.
👍5🫡3🔥2❤1✍1
Ключевые слова throws/throw в Java. Часть 1.
В случае если метод не может осуществить обработку контролируемого исключения, производится соответствующее уведомление при использовании ключевого слова throws в Java.
Ключевое слово throws появляется в конце сигнатуры метода.
При использовании ключевого слова throw вы можете произвести обработку вновь выявленного исключения либо исключения, которое было только что перехвачено.
Следует внимательно различать ключевые слова throw и throws в Java, так как throws используется для отложенной обработки контролируемого исключения, а throw, в свою очередь, используется для вызова заданного исключения.
Представленный на картинке метод отображает, что им генерируется RemoteException.
В случае если метод не может осуществить обработку контролируемого исключения, производится соответствующее уведомление при использовании ключевого слова throws в Java.
Ключевое слово throws появляется в конце сигнатуры метода.
При использовании ключевого слова throw вы можете произвести обработку вновь выявленного исключения либо исключения, которое было только что перехвачено.
Следует внимательно различать ключевые слова throw и throws в Java, так как throws используется для отложенной обработки контролируемого исключения, а throw, в свою очередь, используется для вызова заданного исключения.
Представленный на картинке метод отображает, что им генерируется RemoteException.
👍6🔥5❤1👨💻1
Ключевые слова throws/throw в Java. Часть 2.
Метод также может объявить о том, что им генерируется более чем одно исключение, в случае чего исключения представляются в виде перечня, отделенные друг от друга запятыми.
К примеру, следующий метод оповещает о том, что им генерируются RemoteException и InsufficientFundsException.
Метод также может объявить о том, что им генерируется более чем одно исключение, в случае чего исключения представляются в виде перечня, отделенные друг от друга запятыми.
К примеру, следующий метод оповещает о том, что им генерируются RemoteException и InsufficientFundsException.
👍4✍3🫡2⚡1🔥1
Блок finally в Java.
В Java finally следует за блоком catch. Блок finally в коде выполняется всегда независимо от наличия исключения.
Использование блока finally позволяет запустить какой-либо метод, предназначенный для очистки, не зависимо от того, что происходит в защищенном коде.
Синтаксис выглядит следующим образом:
В Java finally следует за блоком catch. Блок finally в коде выполняется всегда независимо от наличия исключения.
Использование блока finally позволяет запустить какой-либо метод, предназначенный для очистки, не зависимо от того, что происходит в защищенном коде.
Синтаксис выглядит следующим образом:
👍11✍4🔥1👨💻1
Конструкция try–with–resources в Java.
Наверное, один из самых распространенных вопросов на собеседовании на junior java разработчика или trainee – Что такое try–with–resources?
В норме, при использовании различных видов ресурсов, таких как потоки, соединения и др., нам предстоит закрыть их непосредственно при использовании блока finally.
Конструкция try–with–resources, также именуемая как автоматическое управление ресурсами, представляет новый механизм обработки исключений, который был представлен в 7-ой версии Java, осуществляя автоматическое закрытие всех ресурсов, используемых в рамках блока try catch.
Чтобы воспользоваться данным оператором, вам всего лишь нужно разместить заданные ресурсы в круглых скобках ключевого слова try, после чего созданный ресурс будет автоматически закрыт по окончании блока. На картинке представлен синтаксис конструкции try–with–resources.
Наверное, один из самых распространенных вопросов на собеседовании на junior java разработчика или trainee – Что такое try–with–resources?
В норме, при использовании различных видов ресурсов, таких как потоки, соединения и др., нам предстоит закрыть их непосредственно при использовании блока finally.
Конструкция try–with–resources, также именуемая как автоматическое управление ресурсами, представляет новый механизм обработки исключений, который был представлен в 7-ой версии Java, осуществляя автоматическое закрытие всех ресурсов, используемых в рамках блока try catch.
Чтобы воспользоваться данным оператором, вам всего лишь нужно разместить заданные ресурсы в круглых скобках ключевого слова try, после чего созданный ресурс будет автоматически закрыт по окончании блока. На картинке представлен синтаксис конструкции try–with–resources.
👍10🔥4⚡2✍2
Создание своих собственных исключений в Java.
Мы можем создать свои собственные исключения в среде Java, определив собственный класс исключений, как показано ниже:
class MyException extends Exception {
}
Нам лишь необходимо расширить предопределенный java класс Exception с целью создания собственного исключения. Данная категория относится к контролируемым исключениям.
Наш класс MyException исключительных ситуаций, определяемых пользователем, расширяет класс Exception, делая его контролируемым исключением. Класс исключений, подобно всем остальным классам, содержит используемые области и методы.
Мы можем создать свои собственные исключения в среде Java, определив собственный класс исключений, как показано ниже:
class MyException extends Exception {
}
Нам лишь необходимо расширить предопределенный java класс Exception с целью создания собственного исключения. Данная категория относится к контролируемым исключениям.
Наш класс MyException исключительных ситуаций, определяемых пользователем, расширяет класс Exception, делая его контролируемым исключением. Класс исключений, подобно всем остальным классам, содержит используемые области и методы.
👍8🔥3✍1👨💻1
Абстрактный класс в Java.
Кроме обычных классов в Java есть абстрактные классы. Абстрактный класс похож на обычный класс. В абстрактном классе также можно определить поля и методы, но в то же время нельзя создать объект или экземпляр абстрактного класса.
Абстрактные классы призваны предоставлять базовый функционал для классов–наследников. А производные классы уже реализуют этот функционал.
При определении абстрактных классов используется ключевое слово abstract.
Но главное отличие состоит в том, что мы не можем использовать конструктор абстрактного класса для создания его объекта.
Например, таким образом:
Human h = new Human();
Кроме обычных методов абстрактный класс может содержать абстрактные методы. Такие методы определяются с помощью ключевого слова abstract и не имеют никакой реализации:
public abstract void display();
Производный класс обязан переопределить и реализовать все абстрактные методы, которые имеются в базовом абстрактном классе. Также следует учитывать, что если класс имеет хотя бы один абстрактный метод, то данный класс должен быть определен как абстрактный.
Кроме обычных классов в Java есть абстрактные классы. Абстрактный класс похож на обычный класс. В абстрактном классе также можно определить поля и методы, но в то же время нельзя создать объект или экземпляр абстрактного класса.
Абстрактные классы призваны предоставлять базовый функционал для классов–наследников. А производные классы уже реализуют этот функционал.
При определении абстрактных классов используется ключевое слово abstract.
Но главное отличие состоит в том, что мы не можем использовать конструктор абстрактного класса для создания его объекта.
Например, таким образом:
Human h = new Human();
Кроме обычных методов абстрактный класс может содержать абстрактные методы. Такие методы определяются с помощью ключевого слова abstract и не имеют никакой реализации:
public abstract void display();
Производный класс обязан переопределить и реализовать все абстрактные методы, которые имеются в базовом абстрактном классе. Также следует учитывать, что если класс имеет хотя бы один абстрактный метод, то данный класс должен быть определен как абстрактный.
👍8🔥3👨💻2❤1
Зачем нужны абстрактные классы в Java?
Допустим, мы делаем программу для обслуживания банковских операций и определяем в ней три класса: Person, который описывает человека, Employee, который описывает банковского служащего, и класс Client, который представляет клиента банка.
Очевидно, что классы Employee и Client будут производными от класса Person, так как оба класса имеют некоторые общие поля и методы. И так как все объекты будут представлять либо сотрудника, либо клиента банка, то напрямую мы от класса Person создавать объекты не будем.
Поэтому имеет смысл сделать его абстрактным! Пример на картинках.
Допустим, мы делаем программу для обслуживания банковских операций и определяем в ней три класса: Person, который описывает человека, Employee, который описывает банковского служащего, и класс Client, который представляет клиента банка.
Очевидно, что классы Employee и Client будут производными от класса Person, так как оба класса имеют некоторые общие поля и методы. И так как все объекты будут представлять либо сотрудника, либо клиента банка, то напрямую мы от класса Person создавать объекты не будем.
Поэтому имеет смысл сделать его абстрактным! Пример на картинках.
👍14🆒2⚡1✍1❤1🔥1
Перечисления Enum в Java.
Кроме отдельных примитивных типов данных и классов в Java есть такой тип как enum или перечисление. Перечисления представляют набор логически связанных констант. Объявление перечисления происходит с помощью оператора enum, после которого идет название перечисления. Затем идет список элементов перечисления через запятую.
Перечисление фактически представляет новый тип, поэтому мы можем определить переменную данного типа и использовать ее:
Кроме отдельных примитивных типов данных и классов в Java есть такой тип как enum или перечисление. Перечисления представляют набор логически связанных констант. Объявление перечисления происходит с помощью оператора enum, после которого идет название перечисления. Затем идет список элементов перечисления через запятую.
Перечисление фактически представляет новый тип, поэтому мы можем определить переменную данного типа и использовать ее:
👍15🔥3👨💻3👌1
Конструкторы, поля и методы Enum в Java.
Перечисления (enums), как и обычные классы, могут определять конструкторы, поля и методы.
На картинках перечисление Color определяет приватное поле code для хранения кода цвета, а с помощью метода getCode оно возвращается. Через конструктор передается для него значение.
Следует отметить, что конструктор по умолчанию приватный, то есть имеет модификатор private. Любой другой модификатор будет считаться ошибкой. Поэтому создать константы перечисления с помощью конструктора мы можем только внутри перечисления.
Также можно определять методы для отдельных констант (вторая картинка).
Перечисления (enums), как и обычные классы, могут определять конструкторы, поля и методы.
На картинках перечисление Color определяет приватное поле code для хранения кода цвета, а с помощью метода getCode оно возвращается. Через конструктор передается для него значение.
Следует отметить, что конструктор по умолчанию приватный, то есть имеет модификатор private. Любой другой модификатор будет считаться ошибкой. Поэтому создать константы перечисления с помощью конструктора мы можем только внутри перечисления.
Также можно определять методы для отдельных констант (вторая картинка).
👍8🔥5❤4✍1⚡1👌1
Внутренние и вложенные классы в Java.
Классы могут быть вложенными (nested), то есть могут быть определены внутри других классов.
Частным случаем вложенных классов являются внутренние классы (inner class). Например, имеется класс Person, внутри которого определен класс Account.
Внутренний класс ведет себя как обычный класс за тем исключением, что его объекты могут быть созданы только внутри внешнего класса.
Внутренний класс имеет доступ ко всем полям внешнего класса, в том числе закрытым с помощью модификатора private. Аналогично внешний класс имеет доступ ко всем членам внутреннего класса, в том числе к полям и методам с модификатором private.
Ссылку на объект внешнего класса из внутреннего класса можно получить с помощью выражения Внешний_класс.this, например, Person.this.
Объекты внутренних классов могут быть созданы только в том классе, в котором внутренние классы опеределены. В других внешних классах объекты внутреннего класса создать нельзя.
Пример на картинках.
Классы могут быть вложенными (nested), то есть могут быть определены внутри других классов.
Частным случаем вложенных классов являются внутренние классы (inner class). Например, имеется класс Person, внутри которого определен класс Account.
Внутренний класс ведет себя как обычный класс за тем исключением, что его объекты могут быть созданы только внутри внешнего класса.
Внутренний класс имеет доступ ко всем полям внешнего класса, в том числе закрытым с помощью модификатора private. Аналогично внешний класс имеет доступ ко всем членам внутреннего класса, в том числе к полям и методам с модификатором private.
Ссылку на объект внешнего класса из внутреннего класса можно получить с помощью выражения Внешний_класс.this, например, Person.this.
Объекты внутренних классов могут быть созданы только в том классе, в котором внутренние классы опеределены. В других внешних классах объекты внутреннего класса создать нельзя.
Пример на картинках.
👍12🔥3🆒3❤1✍1
Нас 500! ❤️
500 начинающих (и не только 😎) Java–разработчиков! Спасибо, что вы с нами!
Делитесь мыслями в комментариях, общайтесь, не стесняйтесь помогать друг другу, это важно на пути любого разработчика.
А мы с командой, в свою очередь, продолжим развивать канал и создавать авторский контент по нашей любимой Java и приносить пользу нашим начинающим разработчикам 👨💻
Обнял!
500 начинающих (и не только 😎) Java–разработчиков! Спасибо, что вы с нами!
Делитесь мыслями в комментариях, общайтесь, не стесняйтесь помогать друг другу, это важно на пути любого разработчика.
А мы с командой, в свою очередь, продолжим развивать канал и создавать авторский контент по нашей любимой Java и приносить пользу нашим начинающим разработчикам 👨💻
Обнял!
❤25👍6🔥4👨💻3🤗3❤🔥2😍1