Пользовательские исключения

Введение

Мы говорили о том, как обрабатывать исключения, когда они создаются путем вызова методов в API Java. Java также позволяет создавать и использовать настраиваемые исключения — классы ваших собственных исключений в соответствии с потребностями приложения, которые будут использоваться для представления ошибок. Обычно вы создаете настраиваемое исключение, чтобы представить какой-либо тип ошибки в вашем приложении — чтобы придать новое, отчетливое значение одной или нескольким проблемам, которые могут возникнуть в вашем коде. Вы можете сделать это, чтобы показать сходство между ошибками, которые существуют в нескольких местах вашего кода, чтобы отличить одну или несколько ошибок от аналогичных проблем, которые могут возникнуть во время выполнения вашего кода, или для придания особого значения группе ошибок в вашем приложении.

Создать и использовать собственное исключение довольно просто. Вам необходимо выполнить три основных шага. Мы объясним это на примере баланса банковского счета. Здесь мы хотим иметь функцию гибкого депозита, то есть, когда баланс счета превышает 20k, будет создан новый депозит.

Определите класс исключения

Обычно вы представляете настраиваемое исключение, определяя новый класс. Во многих случаях все, что вам нужно сделать, это создать подкласс существующего класса исключения:

Код Java:

  открытый класс AccountBalanceException расширяется  Исключение {частное float accountBalance; общедоступное AccountBalanceException (float f) {super (); this.accountBalance = f;} public AccountBalanceException (строковое сообщение) {super (сообщение);  } public float getAccountBalance () {return accountBalance;}}  

Как минимум, вам нужно создать подкласс Throwable или один из его подклассов. Часто вы также определяете один или несколько конструкторов для хранения информации, такой как сообщение об ошибке, в объекте, как показано в строках 6–12. Наш класс исключения AccountBalanceException имеет два конструктора. Один с аргументом String, а второй конструктор с аргументом float. Когда вы подклассифицируете какое-либо исключение, вы автоматически наследуете некоторые стандартные функции от класса Throwable, такие как:

  • Сообщение об ошибке
  • Трассировка стека
  • Обертывание исключений

Объявите, что ваш метод создания исключений генерирует ваше настраиваемое исключение

Используя ключевое слово throws, мы можем объявить метод, который может генерировать исключение. Чтобы использовать настраиваемое исключение, вы должны показать классы, вызывающие ваш код, который им нужен для планирования этого нового типа исключения. Вы делаете это, объявляя, что один или несколько ваших методов вызывают исключение. Ниже приведен код для управления балансом счета. Класс AccountManagement имеет метод main () и два служебных метода addAmount () и createFixDeposit (). Здесь у нас есть acceptcurrentBalance как Rs. 15000. Если баланс счета превышает Rs. 20000, сумма свыше 20 000 будет передана на фиксированный депозит.

Код Java: перейдите в редактор

  import java.util. Сканер; открытый класс AccountManagement {private float currentBalance = 15000f; public static void main (String [] args) {Scanner inputDevice = new Scanner (System.in); System.out.print ("Пожалуйста, введите сумму, которую нужно добавить на ваш баланс:  "); float newAmount = inputDevice.nextFloat (); попробуйте {float totalAmount = new AccountManagement (). AddAmount (newAmount); System.out.println (" Total Account Balance = "+ totalAmount);} catch (AccountBalanceException a) {  float fdAmount = a.getAccountBalance () - 20000; System.out.println ("Баланс вашего аккаунта превышает 20 КБ, поэтому создание FD of Amount:" + fdAmount); new AccountManagement (). createFixDeposit (fdAmount); System.  out.println ("Account Balance =" +20000);}} public float AddAmount (float amount) выбрасывает AccountBalanceException {float total = currentBalance + amount; if (total> 20000) {throw new AccountBalanceException (total);} return total;  } public void createFixDeposit (float fxAmount) {//Реализация создания FD}} class AccountBalanceException extends Exception {private float  accountBalance; public AccountBalanceException (float f) {super (); this.accountBalance = f;} public AccountBalanceException (строковое сообщение) {super (сообщение);  } public float getAccountBalance () {return accountBalance;}}  

Найдите точку (точки) сбоя в методе, вызывающем ошибку, создайте исключение и отправьте он использует ключевое слово «throw».

Третий и последний шаг — фактически создать объект и распространить его по системе. Для этого вам нужно знать, где ваш код требует специальной обработки в методе. Здесь Throwable Instance должен быть объектом типа Throwable или подклассом Throwable. Есть два способа получить объект Throwable: использовать параметр в предложении catch или создать его с помощью оператора new. Поток выполнения останавливается сразу после оператора throw; любые последующие операторы не выполняются. Ближайший включающий блок try проверяется на предмет наличия в нем оператора catch, соответствующего типу исключения. Если он находит совпадение, управление передается этому оператору. Если нет, то проверяется следующий включающий оператор try и т. Д.

Вывод вышеуказанной программы на основе различных входных параметров, как показано ниже,

  • Java предоставляет исключение классы для большинства распространенных типов ошибок, а также предоставляет механизм для определения пользовательских классов исключений.
  • Три шага для создания и использования настраиваемого класса исключения (1) Определение класса исключения (2) Объявление метода, подверженного исключениям, с ключевым словом throws (3) Проверка условия создания нового объекта исключения для обработки путем вызова метода метод.

Редактор кода Java:

Оцените статью
nanomode.ru
Добавить комментарий