исключение, выброшенное из конструктора - PullRequest
0 голосов
/ 12 июля 2020

Я знаю, как сгенерировать исключение из конструктора и обработать его в основном методе.

но, как я знаю, требуется два шага:

1- создать stati c объект (держатель) с использованием конструктора с параметрами, принимающими переменные.

2-создать объект с помощью конструктора с параметром, принимающим объект.

вот так:

import java.util.Scanner;
public class Test { // open Test class.
  public static void main(String[] argus) { //open main method
    Scanner input = new Scanner(System.in);
    try {
      CHILD.holder = new CHILD("A", -1);
    } catch (Exception e) {
      System.out.println("reEnter:");
      int b = input.nextInt();
      if (b < 0)
        System.out.println("unvalid");
      CHILD.holder.setB(b);
    }
    CHILD obj = new CHILD(CHILD.holder);
  } //end main method
} // end Test class.

class SUPER {
  private String A;
  public SUPER() {}
  public SUPER(String a) {
    A = a;
  }
  public void setA(String a) {
    A = a;
  }
  public String getA() {
    return A;
  }

}

class CHILD extends SUPER {
  public static CHILD holder = new CHILD();
  private int B;
  public CHILD() {}
  public CHILD(String a, int b) throws Exception {
    holder.setA(a);
    holder.B = 0;
    if (b < 0)
      throw new Exception("unalid , negative");
    holder.B = b;
  }
  public CHILD(CHILD obj) {
    super(obj.getA());
    B = obj.B;
  }
  public void setB(int b) {
    B = b;
  }
}

таким образом код становится слишком длинным.

есть ли альтернативный способ передать исключение из конструктора в главный?

...