Я знаю, как сгенерировать исключение из конструктора и обработать его в основном методе.
но, как я знаю, требуется два шага:
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;
}
}
таким образом код становится слишком длинным.
есть ли альтернативный способ передать исключение из конструктора в главный?