Creo una clase nueva:
public class ExceptionMarcaIncorrecta extends Exception{ public ExceptionMarcaIncorrecta() { // TODO Auto-generated constructor stub } public ExceptionMarcaIncorrecta(String mensaje) { super(mensaje); } }
Añado esa excepción en setMarcas:
public void setMarca(String marca) throws ExceptionMarcaIncorrecta { for (String m : VALID_BRANDS) { if (marca.equals(m)) { this.marca = marca; return; } } throw new ExceptionMarcaIncorrecta("Marca incorrecta"); }
Modifico los constructores para que sean específicos:
public Television(String marca, int volumen, String proveedor) throws ExceptionMarcaIncorrecta { setMarca(marca); setVolume(volumen); setProveedor(proveedor); } public Television(String proveedor) throws ExceptionMarcaIncorrecta { this("LG", 6, proveedor); }
Ahora puedo usarla en la prueba:
try { Television tv1 = new Television("ww", 4, "Miro"); tv1.setVolume(-5); tv1.setMarca("Sony"); tv1.setModelo("weweew"); System.out.println(tv1); } catch (ExceptionMarcaIncorrecta e) { System.out.println(e.getMessage()); } catch (Exception e) { System.out.println(e.getMessage()); }