Win a copy of Functional Reactive Programming this week in the Other Languages forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

divide by 0 exception

 
Randall Twede
Ranch Hand
Posts: 4481
3
Java Python Scala
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
i wrote a calculator program like the windows one(well sort of). anyway i had to add a lot of if's to catch bad input that would result in a runtime exception. now i think i am down to only having the divide by 0 one left. if you can find others please let me know. anyway i cant just say if text.equals("0") because it could also be "0.0" ...hmm i could OR them hmmm..

i plan to refactor it when i shake all the bugs out im just wondering if any of you can find some more exception throwing code. or code that doesn't perform correctly.
 
Campbell Ritchie
Sheriff
Pie
Posts: 50241
79
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I would suggest you refactor your Listener class, too. That single method is far too long. Individual Listeners associated with each button would be better. You could have a NumberListener class with 0, 1, 2 etc., as fields for the individual instances.

What about creating a BigDecimal instance from the text, testing its difference from ZERO with the compareTo method and throwing the Exception if the difference is 0?
 
Randall Twede
Ranch Hand
Posts: 4481
3
Java Python Scala
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
i like the single switch statement to handle all action events. it is thanks to java7 that i can do it so easily. i forgot to mention you need java7 to compile or run this.

i was thinking along the same lines. i was going to use Double.parseDouble() to change it to a number and then compare. if they are trying to divide by zero i will use JOptionPane to alert them.....BigDecimal and ZERO look better

i am going to add two lines of code to my original post(rather than repost it all) the case "C" block
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic