Когда возникает исключение, какова ответственность класса исключения? - PullRequest
0 голосов
/ 10 мая 2019

Когда в блоке try возникает исключение, блок catch будет обрабатывать его.Так в чем же ответственность класса исключений?Я нашел в классе исключений в Java и только видел некоторые функции, чтобы обеспечить информацию об исключении (???).Что такое класс исключений делать, когда возникают исключения.И если я хочу написать свое собственное исключение расширения MyException, какой метод я должен написать в классе исключений, чтобы обработать мое исключение

Ответы [ 4 ]

1 голос
/ 10 мая 2019

Когда некоторый код сталкивается с «проблемой», он может создать объект Exception, который описывает проблему, и выбросить его в вызывающий код, чтобы сказать «все пошло не так, как планировалось по причине X».

Вызывающий код должен обрабатывать исключение (с блоком try / catch) и действовать соответствующим образом. Исключение не говорит и не заботится о том, что должно быть сделано дальше.

Если вы находитесь в ситуации, когда вы хотите описать конкретную проблему более точно, чем то, что допускает «стандартное» исключение, вы можете создать собственное исключение. Скажем, вы продаете товары, которые могут быть проданы только людям в возрасте от 20 до 40 лет:

throw new AgeLimitException(clientAge, 20, 40);

И код клиента:

try {
  buyProduct();
} catch (AgeLimitException e) {
  showMessage("Your age is " + e.getAge() + " but you must be between " + e.minAge()
            + " and " + e.maxAge() + " to buy this product");
}

Как видите, роль AgeLimitException заключается просто в предоставлении информации о возникшей проблеме.

1 голос
/ 10 мая 2019
  1. Что такое класс исключений, когда возникает исключение
    Ничего.

  2. если я хочу написать свое собственное исключение расширения MyException, какой метод я пишу в классе исключений для обработки моего исключения
    Вам не нужно ничего реализовывать, но вам может понадобиться конструктор для установки сообщения и хранения некоторой соответствующей информации.

0 голосов
/ 10 мая 2019

Exception класс является типом Throwable. Он только дает вам информацию об исключении (проблема, которая нарушает ваш поток выполнения).

Throwable также является классом и суперклассом (родительским) для всех Error & Exception. Только объекты, которые являются экземплярами этого класса (или одного из его подклассов), выбрасываются виртуальной машиной Java или могут быть выброшены оператором throw Java. Аналогично, только этот класс или один из его подклассов могут быть типом аргумента в предложении catch.

Пользовательское исключение: Java предоставляет возможность создавать наши собственные исключения, которые в основном являются производными классами Exception.

Класс, представляющий определяемое пользователем исключение

class MyException extends Exception 
{ 
    public MyException(String s) 
    { 
        // Call constructor of parent Exception 
        super(s); 
    } 
} 

Класс, который использует выше MyException

public class Main 
{ 
  // Driver Program 
  public static void main(String args[]) 
  { 
    try
    { 
        // Throw an object of user defined exception 
        throw new MyException("My own exception"); 
    } 
    catch (MyException ex) 
    { 
        System.out.println("Caught"); 

        // Print the message from MyException object 
        System.out.println(ex.getMessage()); 
    } 
  } 
} 
0 голосов
/ 10 мая 2019

Мы создаем класс User-Defined-Exception для обработки предстоящих исключений. Когда возникает исключение, он создает объект класса Exception, где мы объявили, что делать, когда делать дальше, поэтому наш программный поток или процесс продолжается не сломался.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...