我创建了3个类:品牌类(Marca)、商业品牌类(MarcaCommercial),它是品牌类的子类,如果品牌构造函数中启动的属性之一为null,则创建异常类(ExMarcaInvalida).我想在我的子类构造函数中捕捉这个异常,并声明它,如果捕捉到这个异常,则使用setter方法.然而,我不能这样做,因为除了第一行之外,我不能在任何地方初始化超类的值.有没有办法捕捉异常并做我想做的事情?下面留下所有3个类构造函数.
public Marca(String nome, String produtor, String regiao)
throws ExMarcaInvalida {
this.nome = nome;
this.produtor = produtor;
this.regiao = regiao;
if(nome.isEmpty() || nome.isBlank()){
throw new ExMarcaInvalida("Nome invalido");
}
}
public MarcaComercial(String rotulo, String email,
String num, String nome,String produtor, String regiao)
throws ExMarcaInvalida {
try{
super(nome, produtor, regiao); //ISSUE HERE
this.rotulo = rotulo;
this.email = email;
this.num = num;
}
catch(ExMarcaInvalida e){
setRotulo("Marca Branca");
throw new ExMarcaInvalida("Marca Invalida");
}
}
public class ExMarcaInvalida extends Exception{
public ExMarcaInvalida(String msg){
super(msg);
}
}