-> Olá, qual seria a melhor forma de mostrar a mensagem “Delta negativo, coloque outros valores!”
assim:
public class TesteUnchekedExceptions {
public static void main(String[] args) {
Scanner user = new Scanner(System.in);
System.out.print("Informe A = ");
double a = user.nextDouble();
System.out.print("Informe B = ");
double b = user.nextDouble();
System.out.print("Informe C = ");
double c = user.nextDouble();
try {
TesteUnchekedExceptions.calcularEquacao2grau(a, b, c);
} catch(RuntimeException e) {
System.out.println(e.getMessage());
}
}
private static void calcularEquacao2grau(double a, double b, double c) {
if (b < 0) {
b = b * -1;
}
double res = (b * b) - 4 * a * c;
if (res < 0) {
throw new IllegalArgumentException("Delta negativo, coloque outros valores!");
}
double xi = ((b * -1) + sqrt(res)) / 2 * a;
double xii = ((b * -1) - sqrt(res)) / 2 * a;
System.out.println("delta = "+res);
System.out.println("x' = "+xi+"\nx'' = "+xii);
}
}
-> ou assim:
public class TesteUnchekedExceptions {
public static void main(String[] args) {
Scanner user = new Scanner(System.in);
System.out.print("Informe A = ");
double a = user.nextDouble();
System.out.print("Informe B = ");
double b = user.nextDouble();
System.out.print("Informe C = ");
double c = user.nextDouble();
TesteUnchekedExceptions.calcularEquacao2grau(a, b, c);
}
private static void calcularEquacao2grau(double a, double b, double c) {
if (b < 0) {
b = b * -1;
}
double res = (b * b) - 4 * a * c;
if (res < 0) {
System.out.println("Delta negativo, coloque outros valores!");
}
double xi = ((b * -1) + sqrt(res)) / 2 * a;
double xii = ((b * -1) - sqrt(res)) / 2 * a;
System.out.println("delta = "+res);
System.out.println("x' = "+xi+"\nx'' = "+xii);
}
}
–> não sei se seria melhor trata-lo como uma exception ou com um if, mesmo os dois jeitos funcionando não sei qual seria o mais correto em um projeto serio por exemplo.