Wyłączenie wyjątku

0

Witam. Chciałbym, aby dla pewnej metody nie był wyrzucany wyjątek: NumberFormatException. Bo mam metodę, w której mam takiego Ifa:

(((textField_2.getText().equals("")) && (textField_3.getText().equals("")))
					|| (((Double.parseDouble(textField_2.getText()) <= x.cena) && (textField_3.getText().equals(""))) 
					|| ((Double.parseDouble(textField_3.getText()) >= x.cena) && (textField_2.getText().equals(""))) 
					|| ((Double.parseDouble(textField_2.getText()) <= x.cena) && (Double.parseDouble(textField_3.getText()) >= x.cena))))

I jeśli pole 2 jest puste, a pole 3 to wywali mi błąd podczas konwertowania na Double. Chciałbym dla tej metod wyłączyć ten wyjątek. Czy istnieje taka możliwość?

0

Tak. Należy go złapać.

0

Wrzuciłem wszystko w blok

try {

} catch (Exception ex) {
			
		}

Ale z zachowania programu, wnioskuję, że on i tak zatrzymuję się w momencie wystąpienia wyjątku i nie przechodzi dalej. Jak to ma wyglądać? Bo jak opisałem wcześniej sytuacje to ma być taka wyszukiwarka i w przedziale cena mamy cena od i cena do, użytkownik może nie wprowadzić np. ceny od lub ceny do. Ale w ifie sprawdzane są oba warianty, z tym, że któryś z nich musi być pierwszy, że cena od albo cena do jest pusta i wtedy przy konwersji z string na int wywala wyjątek, że jest puste pole.

Jak to obejść? Żeby ten wyjątek był pomijany? Jakaś instrukcja w tym catch czy coś?

0

Może tak:

boolean ok = true;
double cenaOd = 0.0;
double cenaDo = Double.MAX_VALUE;
if(!textField_2.getText().isEmpty())
{
    try
    {
        cenaOd = Double.parseDouble(textField_2.getText());
    }
    catch(NumberFormatException e)
    {
        ok = false;
    }
}
if(!textField_3.getText().isEmpty())
{
    try
    {
        cenaDo = Double.parseDouble(textField_3.getText());
    }
    catch(NumberFormatException e)
    {
        ok = false;
    }
}
...

A na końcu sprawdzasz wartość zmiennej ok.

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