¿Mi solución para el siguiente problema de excepción de Java es correcta?

1. Mueva el método checkFood () a la clase MyException y llámelo en consecuencia en el método main (). Por qué, porque las clases de excepción personalizadas están destinadas a agrupar excepciones basadas en la causa y desarrollar excepciones significativas basadas en los requisitos de la aplicación. No debe contener ningún método comercial . No es para ese propósito. Lea más aquí: Excepciones personalizadas – w3resource

2. Su clase BadFoodException tiene que anular el método getMessage () de la clase de excepción y en ese método debe devolver “No me gusta Pasta”. Porque en su bloque catch en main (), está imprimiendo bfee.getMessage (). Entonces su código debería verse así:

public class CustomExceptionTest {
public static void main (String [] args) {
Prueba CustomExceptionTest = nueva CustomExceptionTest ();
tratar{
test.checkFood (“Pasta”);
} catch (BadFoodException bfee) {
System.out.println (bfee.getMessage ());
}
}
public void checkFood (String food) lanza BadFoodException {
if (food.equalsIgnoreCase (“Pasta”)) {
lanzar una nueva BadFoodException (“No me gusta la pasta”);
}
}
}
La clase BadFoodException extiende la excepción {
mensaje de cadena privada;

public BadFoodException (mensaje de cadena) {
this.message = mensaje;
}

@Anular
public String getMessage () {
devuelve this.message;
}
}

Salida: no me gusta la pasta

De todos modos, sin este paso, si su código tiene el siguiente formato, eso también debería funcionar:

public class CustomExceptionTest {
public static void main (String [] args) {
Prueba CustomExceptionTest = nueva CustomExceptionTest ();
tratar{
test.checkFood (“Pasta”);
} catch (BadFoodException bfee) {
System.out.println (bfee.getMessage ());
}
}
public void checkFood (String food) lanza BadFoodException {
if (food.equalsIgnoreCase (“Pasta”)) {
lanzar una nueva BadFoodException (“No me gusta la pasta”);
}
}
}
La clase BadFoodException extiende la excepción {
comida de cuerda privada;
// Constructor sobrecargado
public BadFoodException (entrada de cadena) {
this.food = input;
}
public BadFoodException () {

}
}

Salida: nulo
Motivo: Refiérase al punto número 2
Punto a tener en cuenta: No debe recibir un mensaje como el que mencionó, “Pero recibí un mensaje de error en IDE que dice que necesito tener un constructor adecuado para la clase BadFoodException”. La salida solo será nula. Pero su código se compilará y se ejecutará con éxito.

Gracias por el A2A.

Estás cerca pero aún no has hecho esta parte:

  • A la inversa, verifique si la cadena tiene una longitud de 0 utilizando el método String.length (). Si la longitud es 0, el método inverso arrojará una excepción.

Lea acerca de las palabras clave “throws” y “throw” y mire aquí Cómo lanzar excepciones