Синтаксис. Пример 2. Создание своих собственных исключений. Синтаксис try(FileReader fr = new FileReader("Путь к файлу")) { // использование ресурса }catch() { // тело catch }}
Синтаксис try(FileReader fr = new FileReader(" Путь к файлу" )) { // использование ресурса }catch() { // тело catch }}Программа ниже производит считывание данных в файле, используя конструкцию try-with-resources. Пример 2 import java. io. FileReader; import java. io. IOException; public class Test { public static void main(String args[]) { try(FileReader fr = new FileReader(" E: //Soft/NetBeans 8. 2/Projects/test/test/file. txt" )) { char [] array = new char[10]; fr. read(array); // чтение содержимого массива for(char c: array) System. out. print(c); // вывод символов на экран, один за одним }catch(IOException e) { e. printStackTrace(); } }}При работе с конструкцией try-with-resources следует принимать во внимание следующие нюансы: · С целью использования конструкции try-with-resources следует реализовать интерфейс AutoCloseable, после чего соответствующий метод close() будет вызван автоматически во время выполнения. · В конструкции try-with-resources возможно указание одного и более классов. · При указании нескольких классов в блоке try конструкции try-with-resources, закрытие данных классов будет производиться в обратном порядке. · За исключением внесения ресурсов в скобки, все элементы являются равными аналогично нормальному блоку try/catch в составе блока try. · Ресурсы, внесенные в try, конкретизируются до запуска блока try. · Ресурсы непосредственно в составе блока try указываются как окончательные.
Создание своих собственных исключений Вы можете создать свои собственные исключения в среде Java. При записи собственных классов исключений следует принимать во внимание следующие аспекты: · Все исключения должны быть дочерними элементами Throwable. · Если вы планируете произвести запись контролируемого исключения с автоматическим использованием за счет правила обработки или объявления, вам следует расширить класс Exception.
· Если вы хотите произвести запись исключения на этапе выполнения, вам следует расширить класс RuntimeException. Вы можете определить собственный класс исключений, как показано ниже: class MyException extends Exception {}Вам лишь необходимо расширить предопределенный класс Exception с целью создания собственного исключения. Данная категория относится к контролируемым исключениям. Следующий класс InsufficientFundsException исключительных ситуаций, определяемых пользователем, расширяет класс Exception, делая его контролируемым исключением. Класс исключений, подобно всем остальным классам, содержит используемые области и методы. Пример // Название файла InsufficientFundsException. javaimport java. io. *; public class InsufficientFundsException extends Exception { private double amount; public InsufficientFundsException(double amount) { this. amount = amount; } public double getAmount() { return amount; }}
С целью демонстрации наших исключений, определяемых пользователем, следующий класс Checking содержит метод withdraw(), генерирующий InsufficientFundsException. // Название файла Checking. javaimport java. io. *; public class Checking { private int number; private double balance; public Checking(int number) { this. number = number; } public void deposit(double amount) { balance += amount; } public void withdraw(double amount) throws InsufficientFundsException { if(amount < = balance) { balance -= amount; }else { double needs = amount - balance; throw new InsufficientFundsException(needs); } } public double getBalance() { return balance; } public int getNumber() { return number; }}
Следующая программа Bank демонстрирует вызов методов deposit() и withdraw() класса Checking. // Название файла Bank. javapublic class Bank { public static void main(String [] args) { Checking c = new Checking(101); System. out. println(" Депозит $300... " ); c. deposit(300. 00); try { System. out. println(" \nСнятие $100... " ); c. withdraw(100. 00); System. out. println(" \nСнятие $400... " ); c. withdraw(400. 00); }catch(InsufficientFundsException e) { System. out. println(" Извините, но у Вас $" + e. getAmount()); e. printStackTrace(); } }}Скомпилируйте все три выше обозначенные файла и произведите запуск Bank. Вследствие этого будет получен следующий результат: Депозит $300... Снятие $100... Снятие $400... Извините, но у Вас $200. 0InsufficientFundsException at Checking. withdraw(Checking. java: 25) at Bank. main(Bank. java: 13)Общие исключения
В Java можно выделить две категории исключений и ошибок. · Исключения JVM — данная группа представлена исключениями/ошибками, которые вызываются непосредственно и логически со стороны JVM. Примеры: NullPointerException, ArrayIndexOutOfBoundsException, ClassCastException. · Программные исключения — данные исключения вызываются непосредственно приложением либо программистами API. Примеры: IllegalArgumentException, IllegalStateException.
20. 2. Java — Встроенные исключения Java определяет несколько классов исключений внутри стандартного пакета java. lang. Наиболее общие из этих исключений являются подклассами стандартного типа RuntimeException. Поскольку java. lang неявно импортируется во все java-программы, то большинство исключений, полученных из RuntimeException, автоматические. Java определяет несколько других типов исключений, которые относятся к его различным библиотекам класса. Ниже приведен список неконтролируемых исключений на этапе выполнения (Unchecked RuntimeException).
Ниже приведен список контролируемых исключений (Checked Exceptions) в Java, определенных в java. lang.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|