Eclipse przenosi mnie do zakładki debug, a x/0=infinity

0

Witajcie.
Zamiast wyświetlić błąd w konsoli, gdy coś jest nie tak, mnie przenosi do zakładki debug. Kiedys to dzialało normalnie a teraz Eclipse świruje.
Drugi mój problem to gdy dziele coś przez zero to wyświetla mi w konsoli infinity, a nie wychwytuje błędu tak jak bym chciał tutaj w programie.
Pozdrawiam.

package kalkulatorpack;

import java.util.InputMismatchException;
import java.util.Scanner;

public class kalkulator {
	public static void main(String[] args) {
		float a = 0; // I zmienna
		float b = 0; // II zmienna
		String op = ""; // operator
		Scanner sc = new Scanner(System.in);
		boolean error = true;

		while (error) {
			try {
				System.out.println("Podaj pierwszą liczbe zmiennoprzecinkową:");
				a = sc.nextFloat();
				sc.nextLine();
				System.out.println("Podaj drugą liczbe zmiennoprzecinkową");
				b = sc.nextFloat();
				sc.nextLine();
				System.out.println("Co chcesz zrobic?");
				System.out.println("Dodac(+), odjac(-), pomnozyc(*),podzielic(/)?");
				op = sc.nextLine();
				error = false;
			} catch (InputMismatchException ex) {
				System.out.println("Podaleś bledna liczbe");
				ex.printStackTrace();
			} catch (ArithmeticException ex) {
				System.out.println("Pamietaj cholero nigdy nie dziel przez zero");
				ex.printStackTrace();
			} finally {
				 sc.nextLine();
			}
		}
		sc.close();

		switch (op) {
		case "+":
			//System.out.println(dodaj(a, b));
			System.out.println(a+b);
			break;
		case "-":
			System.out.println(a-b);
			//System.out.println(odejmij(a, b));
			break;
		case "/":
			System.out.println(a/b);
			//System.out.println(podziel(a, b));
			break;
		case "*":
			System.out.println(a*b);
			//System.out.println(razy(a, b));
			break;
		default:
			System.out.println("Blad switch");
		}

	}

	public static float dodaj(float a, float b) {
		return a + b;
	}

	public static float odejmij(float a, float b) {
		return a - b;
	}

	public static float podziel(float a, float b) {
		return a / b;
	}

	public static float razy(float a, float b) {
		return a * b;
	}
}

 
1

W Javie dzielenie przez 0 liczby zmiennoprzecinkowej nie jest błędem. Analogicznie, nie jest też błędem dzielenie liczby stałoprzecinkowej przez 0.0.
Edit, błędem jest dzielenie 0.0/0.0

0

Dzięki, to już tylko jeden problem mi został.

0

Co nazywasz zakładką debug?

0

Na dole jest parę zakładek, tam gdzie konsola. Na początku pyta czy chce przejść do perspektywy debugowania, wybieram, że nie chcę, i wtedy z zakładki Console zmienia mi się na Debug. Do tego nawet jeśli wybiorę 'Nie' to w konsoli nie wyświetla się informacja o błędzie, chociaż błąd jest.

0

A masz jakiś breakpoint postawiony?

0

Nie wiem czym jest breakpoint, ale mam odznaczoną opcje set breakpoint w lewym górnym rogu i świadomie przynajmniej nie ustawiałem żadnego breakpointa.

1 użytkowników online, w tym zalogowanych: 0, gości: 1