Home • ECDL • Algoritmi • Java • Basi di dati • Seconda prova • Eccetera • Cerca nel sito

Eccezioni 1

Precedente
SUPERIORE
Successiva

Tratto da: Ferdinando Sanpietro, Ornella Sanpietro - Java: il linguaggio e la tecnologia - TRAMONTANA

Dati n reali inseriti dall'utente calcolarne la media

import javax.swing.JOptionPane;

public class Eccezioni0
{
   public static void main(String args[])
   {
      String input;
      double v[]=new double[5];

      input=JOptionPane.showInputDialog("Quanti elementi?");
      int numElementi=Integer.parseInt(input);

      double media=0;
      for(int i=0; i < numElementi; i++)
      {
         input=JOptionPane.showInputDialog("v["+i+"]=");
         v[i]=Double.parseDouble(input);
         media+=v[i];
      } 
      media/=numElementi;
      JOptionPane.showMessageDialog(null, "Media="+media);
   }
}

Se numElementi > 5 si ha un accesso errato all'array v, catturiamolo!

import javax.swing.JOptionPane;

public class Eccezioni1
{
   public static void main(String args[])
   {
      String input;
      double v[]=new double[5];

      try
      { 
         input=JOptionPane.showInputDialog("Quanti elementi?");
         int numElementi=Integer.parseInt(input);

         double media=0;
         for(int i=0; i < numElementi; i++)
         {
            input=JOptionPane.showInputDialog("v["+i+"]=");
            v[i]=Double.parseDouble(input);
            media+=v[i];
         } 
         media/=numElementi;
         JOptionPane.showMessageDialog(null, "Media="+media);
      }
      catch(ArrayIndexOutOfBoundsException ex)
      {
         JOptionPane.showMessageDialog(null, "Numero elementi eccessivo");
      } 
   }
}

Se input non rappresenta effettivamente un numero reale si ha un numero malformato, catturiamolo!

import javax.swing.JOptionPane;

public class Eccezioni2
{
   public static void main(String args[])
   {
      String input;
      double v[]=new double[5];

      try
      {
         input=JOptionPane.showInputDialog("Quanti elementi?");
         int numElementi=Integer.parseInt(input);

         double media=0;
         for(int i=0; i < numElementi; i++)
         {
            input=JOptionPane.showInputDialog("v["+i+"]=");
            v[i]=Double.parseDouble(input);
            media+=v[i];
         } 
         media/=numElementi;
         JOptionPane.showMessageDialog(null, "Media="+media);
      }
      catch(ArrayIndexOutOfBoundsException ex)
      {
         JOptionPane.showMessageDialog(null, "Numero elementi eccessivo");
      } 
      catch(NumberFormatException ex)
      {
         JOptionPane.showMessageDialog(null, "Input errato");
      }
   }
}

Se numElementi==0 si ha una divisione per zero che produce il risultato NaN, catturiamolo!

import javax.swing.JOptionPane;

public class Eccezioni3 
{
   public static void main(String args[])
   {
      String input;
      double v[]=new double[5];

      try
      {
         input=JOptionPane.showInputDialog("Quanti elementi?");
         int numElementi=Integer.parseInt(input);

         double media=0;
         for(int i=0; i < numElementi; i++)
         {
            input=JOptionPane.showInputDialog("v["+i+"]=");
            v[i]=Double.parseDouble(input);
            media+=v[i];
         } 
         if(numElementi==0)
            throw new ArithmeticException();

         media/=numElementi;
         JOptionPane.showMessageDialog(null, "Media="+media);
      }
      catch(ArrayIndexOutOfBoundsException ex)
      {
         JOptionPane.showMessageDialog(null, "Numero elementi eccessivo");
      } 
      catch(NumberFormatException ex)
      {
         JOptionPane.showMessageDialog(null, "Input errato");
      }
   }
}

Eccezioni 1 - ApPuNtIdIuNiNfOrMaTiCo

Home • ECDL • Algoritmi • Java • Basi di dati • Seconda prova • Eccetera • Cerca nel sito

Precedente
SUPERIORE
Successiva