🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #7105

Re: Java IOExceptions

#7105
From: Koen Hautekeete
Date: Sat, 12 Oct 2002 12:50
137 lines
4412 bytes
On Sat, 12 Oct 2002 12:18:08 +0200, Christof  Laeremans
<christof_laeremans@hotmail.com> wrote:

>Hallo,
>
>Voor een oefening om met breuken te werken moeten we gaan testen als de
>noemer nul is en dus als uitkomst ongeldig geven, maar ... Alle breuken
>moeten ingelezen worden in de vorm van bv. 1/9 (String) dus moet die
>IOException ergens anders gebeuren.

Ik vermoed dat je een ArithmeticException bedoeld?
(ArithmeticException: Thrown when an exceptional arithmetic condition
has occurred. For example, an integer "divide by zero" throws an
instance of this class.)

>Ik dacht aan de eerste bewerking waar je gaat delen door de noemer in mijn
>geval de functie ggd maar is dit de juiste plaats ?
>
>Kan je nog op een andere manier die IOException gooien ?
>
>Kan er iemand mij soms enkele tips geven ?

Zoals je ziet gebeurt de afhandeling van het al dan niet geldig zijn
van de String volledig door de klasse Fraction. Zo wordt bvb door de
method parseFraction een NumberFormatException gethrowed als de String
"foutief" is...

import java.util.StringTokenizer;

public class Fraction
{
  public static char fractionDelimiter = '/';

  private int numerator = -1;
  private int denominator = -1;

  public Fraction()
  {
  }

  public Fraction(int aNumerator, int aDenominator)
  {
    this.setNumerator(aNumerator);
    this.setDenominator(aDenominator);
  }

  public static Fraction parseFraction(String aFraction)
    throws NumberFormatException
  {
    Fraction fraction = new Fraction();
    StringTokenizer st =
      new StringTokenizer(
        aFraction,
        String.valueOf(Fraction.fractionDelimiter));

    if (st.countTokens() == 2)
    {
      fraction.setNumerator(Integer.parseInt(st.nextToken()));
      fraction.setDenominator(Integer.parseInt(st.nextToken()));
    }
    else
      if (st.countTokens() == 1)
      {
        if (aFraction.charAt(0) == Fraction.fractionDelimiter)
        {
          fraction.setNumerator(0);
          fraction.setDenominator(Integer.parseInt(st.nextToken()));
        }
        else
        {
          fraction.setNumerator(Integer.parseInt(st.nextToken()));
          fraction.setDenominator(1);
        }
      }
      else
      {
        throw new NumberFormatException("Not a valid fraction: " +
aFraction);
      }

    return fraction;
  }
  /**
   * Returns the denominator.
   * @return int
   */
  public int getDenominator()
  {
    return denominator;
  }

  /**
   * Returns the numerator.
   * @return int
   */
  public int getNumerator()
  {
    return numerator;
  }

  /**
   * Sets the denominator.
   * @param denominator The denominator to set
   */
  public void setDenominator(int denominator)
  {
    this.denominator = denominator;
  }

  /**
   * Sets the numerator.
   * @param numerator The numerator to set
   */
  public void setNumerator(int numerator)
  {
    this.numerator = numerator;
  }

  public double divideNumeratorByDenominator()
  {
    double returnValue = -1;
    if (this.getDenominator() == 0)
    {
      throw new ArithmeticException("Denominator = 0");
    }
    else
    {
      returnValue = this.getNumerator() / this.getDenominator();
    }
    return returnValue;
  }
}


mvg

Koen Hautekeete
Technical Details
Message-ID: <ac6gqucclfu5vt8jl2749lsem3c1c8aq2i@4ax.com>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-03!sn-xit-01!sn-xit-04!supernews.com!iad-peer.news.verio.net!news.verio.net!newsfeed.cwix.com!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail
References: <B9CDC380.B0D9%christof_laeremans@hotmail.com>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: fcea4,85e83f0b8f0e3893
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2002-10-12 05:52:04 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-03!sn-xit-01!sn-xit-04!supernews.com!iad-peer.news.verio.net!news.verio.net!newsfeed.cwix.com!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail
From: Koen Hautekeete <khautekeete@SP*MPR*T*CT**Nhotmail.com>
Newsgroups: be.comp.programming
Subject: Re: Java IOExceptions
Message-ID: <ac6gqucclfu5vt8jl2749lsem3c1c8aq2i@4ax.com>
References: <B9CDC380.B0D9%christof_laeremans@hotmail.com>
X-Newsreader: Forte Agent 1.91/32.564
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Lines: 137
Date: Sat, 12 Oct 2002 12:50:22 GMT
NNTP-Posting-Host: 213.118.137.152
X-Complaints-To: abuse@telenet.be
X-Trace: afrodite.telenet-ops.be 1034427022 213.118.137.152 (Sat, 12 Oct 2002 14:50:22 MET DST)
NNTP-Posting-Date: Sat, 12 Oct 2002 14:50:22 MET DST
Organization: Telenet Internet