Guten Tag,
ich habe mir in Java ein Programm zur Berechnung des BMI geschrieben, und zwar mit GUI, Splash Screen und einen eigenen Info Dialog. Jedoch habe ich nun ein Problem. Ich möchte eine ArithmeticException abfangen, falls in der Methode berechneBMI() die Größe durch 0 geteilt wird.
Ich rufe die Methode über einen ActionListener meines 3. Buttons auf, wobei die Methode berechneBMI() im ActionListener mit einem try-catch-Block versehen ist, um die anderen Exceptions, die bei Fehleingaben entstehen können, abzufangen.
Hier einmal der Code:
ich habe mir in Java ein Programm zur Berechnung des BMI geschrieben, und zwar mit GUI, Splash Screen und einen eigenen Info Dialog. Jedoch habe ich nun ein Problem. Ich möchte eine ArithmeticException abfangen, falls in der Methode berechneBMI() die Größe durch 0 geteilt wird.
Ich rufe die Methode über einen ActionListener meines 3. Buttons auf, wobei die Methode berechneBMI() im ActionListener mit einem try-catch-Block versehen ist, um die anderen Exceptions, die bei Fehleingaben entstehen können, abzufangen.
Hier einmal der Code:
Java:
button3.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
progressbar1.setValue(0);
listbox1.removeAll();
DecimalFormat format1 = new DecimalFormat();
double bmi = 0;
try
{
bmi = berechneBMI(Float.parseFloat(edit1.getText()), Float.parseFloat(edit2.getText())); // <-- DriveByZeroException wird hier so nicht abgefangen.
format1 = new DecimalFormat("0.00");
edit3.setText(String.valueOf(format1.format(bmi)));
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
edit1.setText("");
edit2.setText("");
return;
}
listbox1.add(vergleicheBMI(bmi));
progressbar1.setValue(1);
Java:
public double berechneBMI(double groesse, double gewicht)
{
double result;
result = 0;
result = gewicht / power(groesse, 2); // <-- Hier soll eine DivideByZeroException abgefangen werden.
return result;
}
Zuletzt bearbeitet: