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;
}
- Soy un comerciante bursátil de 13 años y emprendedor. Estoy tratando de ahorrar para un BMW M4. Hago alrededor de 500 / día en promedio. ¿Es una buena o una mala idea?
- ¿Cuáles son las perspectivas de conseguir un trabajo en los Estados Unidos justo después de la finalización de ‘BBA’ de la India?
- Mi empresa vio una caída del 20% en el CPM para nuestro inventario remanente el día que comenzó el tercer trimestre. ¿Alguien más ha visto que esto suceda?
- Recientemente comencé a escuchar EDM. ¿Cuáles son algunas buenas canciones que puedo escuchar?
- Tengo $ 500k para invertir. Quiero hacer un ingreso pasivo de $ 5k / mes hasta el resto de mi vida. ¿Eso es factible?
@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.