Kalkulator Gui

PI
  • Rejestracja:ponad 8 lat
  • Ostatnio:prawie 8 lat
  • Postów:15
0

Witam chciałbym w kalkuatorze napisanym w gui dodać wyjątek - dzielenia przez zero. Na tą chwilę mam to po prostu zrobione na ife, czy ktoś pomoże przerobić to na wyjątek?

Kopiuj

private void equalsActionPerformed(java.awt.event.ActionEvent evt) {                                       
        secondDouble=(Double.parseDouble(String.valueOf(display.getText())));
        
        
        if(plusClick>0){
            totalDouble=firstDouble+secondDouble;
            display.setText((String.valueOf(totalDouble)));
            firstDouble=0;
            secondDouble=0;
            plusClick=0;
        }
        if(minusClick>0){
            totalDouble=firstDouble-secondDouble;
            display.setText((String.valueOf(totalDouble)));
            firstDouble=0;
            secondDouble=0;
            minusClick=0;
        }
        if(multiplyClick>0){
            totalDouble=firstDouble*secondDouble;
            display.setText((String.valueOf(totalDouble)));
            firstDouble=0;
            secondDouble=0;
            multiplyClick=0;
        }   
        
           
       if (divideClick>0){
        if(secondDouble==0){
            display.setText("Nie można dzielić przez zero");
		}
		else{totalDouble=firstDouble/secondDouble;
            display.setText((String.valueOf(totalDouble)));
            firstDouble=0;
            secondDouble=0;
            divideClick=0;
		}
}
       try { 
                
                wynik=wynik+Double.toString(totalDouble)+" ";
                try (PrintWriter zapis_wyniku = new PrintWriter("wynik.txt")) {
                    zapis_wyniku.println(wynik);
                }
            } catch (FileNotFoundException ex) {
                Logger.getLogger(Calculatorr.class.getName()).log(Level.SEVERE, null, ex);
            }
    }                                      

jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 3 godziny
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
0

Błedne Usuwasz ifa i normalnie dzielisz przez 0. Leci wyjątek. Problem rozwiązany.
Ponieważ masz double to jak to kolega @bogdans zauważył wyjątek nie leci. Czyli możesz zrobić w
swoim ifie throw new ArithmeticException();
albo
po podzieleniu sprawdzić czy wynik jest liczbą:

Kopiuj
if ( Double.isNaN(wynikDzielenia) ) {
   throw new ArithmeticException();
}

Zostaje pytanie po co Ci ten wyjątek....?
I drugie "jak to kalkulator na double..." ? (ale to możesz olać na razie - w każdym razie warto wiedzieć, że ten kalkulator będzie generalnie dziwny).


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 4x, ostatnio: jarekr000000
bogdans
Nie leci, operandy są typu double ;)
jarekr000000
Racja - nawet nie spojrzałem....
wojciechmaciejewski
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 2 lata
  • Postów:560
0
Kopiuj
if(secondDouble==0){
            throw new MojWyjatekDzieleniaPrzezZero("Pamietaj Cholero nie dziel przez zero");
        }

zrob se tylko klase MojWyjatekDzieleniaPrzezZero dziedziczący po Exception ;-)

pozdro

PI
  • Rejestracja:ponad 8 lat
  • Ostatnio:prawie 8 lat
  • Postów:15
0

Dzięki Panowie! A wyjątek po to, bo prowadzący powiedział, że będzie happy jak w projekcie będzie zawarty jakiś wyjątek :D

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.