Newsgroup: it.comp.java
Titolo: URGENTE ! sulle eccezioni

Ciao , ho un problema molto urgente da risolvere entro le 11 di stanotte . .
. .
Le sapete controllare le eccezioni ? ? Io no , non so da dove iniziare ! Ho
fatto  una classe che opera sugli esadecimali , fa tutte le operazioni
aritmetiche ma quando si tratta di fare per es. c1-c2 dove c2 è MAGGIORE DI
c1 il risultato è ovviamente negativo e mi solleva un'eccezione a run-time
Per esempio le variabili sono:
c1= 7a4
c2= a76
c1 + c2= 121a
c1-c2 DOVREBBE dare fffffffffffffd2e
Ed ecco l'errore:
Exception in thread "main" java.lang.NumberFormatException: fffffd2e
at java.lang.Integer.parseInt(Integer.java:426)
at Es03.<init>(Es03.java:13)
at Es03.sub(Es03.java:28)----------------------->( Es03 è il nome della
classe   sub è il metodo di sottrazione)
at HexTest.main(HexTest.java:15)   --------------> ( HexTest è il driver per
provare il funzionamento     della mia classe)
Press any key to continue...
Bisogna dire che io per fare queste operazioni trasformavo la stringa
esadecimale in un intero in base 10 con i metodi della classe Integer e poi
la convertivo di unovo in stringa .
Per favore aiutatemi ! Che istruzioni devo mettere per catturare l'eccezione
?
Grazie

Che istruzioni devo mettere per catturare l'eccezione?
Un giorno aprirņ un thread su qualche ng di medicina dal titolo "Ma il 
Tutorial Sun causa allergie o intolleranze?":
http://java.sun.com/docs/books/tutorial/essential/exceptions/index.html
HTH
-- 
Ciao
	Fabrizio C.

Scusate per prima, non si capiva davvero niente.Provo a incollarvi quà i due
file.  Grazie di nuovo-  :-)
Questa è la classe:
public class Es03
{
 private String esadecimale;
 private int decimale;
 private int base=16;
//Inizializza la stringa e la trasforma in un intero decimale
//Dopo ogni operazione l'intero decimale è di nuovo convertito in stringa
//E viene restituito come nuovo oggetto della classe
 public Es03(String input)
 {
  esadecimale=input.toLowerCase();
  decimale=Integer.parseInt(esadecimale,base);  }
   //----------OPERAZIONI ARITMETICHE-----------//
   public Es03 add(Es03 op2)              //somma
   {
     int somma_dec=decimale+op2.getDecimale();
     String somma_esadec=Integer.toHexString(somma_dec);
     return new Es03(somma_esadec);     }
   public Es03 sub(Es03 op2)              //sottrazione
   {
     int diff_dec=decimale-op2.getDecimale();
     String diff_esadec=Integer.toHexString(diff_dec);
     return new Es03(diff_esadec);     }
   public Es03 mult(Es03 op2)             //moltiplicazione
   {
     int molt_dec=decimale*op2.getDecimale();
     String molt_esadec=Integer.toHexString(molt_dec);
     return new Es03(molt_esadec);     }
    public Es03 div(Es03 op2)             //divisione
   {
     int div_dec=decimale/op2.getDecimale();
     String div_esadec=Integer.toHexString(div_dec);
     return new Es03(div_esadec);     }
     public Es03 mod(Es03 op2)            //resto
   {
     int mod_dec=decimale%op2.getDecimale();
     String mod_esadec=Integer.toHexString(mod_dec);
     return new Es03(mod_esadec);     }
     //-------------------------------------------------------//
     public int getDecimale()
     {return decimale;}
     public String toString()
     {return (""+esadecimale);}
  }
E questo è il driver col main:
  import Es03;
public class HexTest
{
 public static void main(String [] args)
 {
  Es03 c1,c2,c3,ct;
  c1=new Es03("7A4");
  c2=new Es03("A76");
  c3=new Es03("FFF");
  System.out.println("c1= " +c1);
  System.out.println("c2= " +c2);
  System.out.println("c3= " +c3);
  System.out.println("c1 + c2= " +c1.add(c2));
  System.out.println("c1 - c2= " +c1.sub(c2));
  System.out.println("c2 - c1= " +c2.sub(c1));
  System.out.println("c1 * c2= " +c1.mult(c2));
  System.out.println("c2 * c1= " +c2.mult(c1));
  System.out.println("c2 * c3= " +c2.mult(c3));
  System.out.println("c1 / c2= " +c1.div(c2));
  System.out.println("c2 / c1= " +c2.div(c1));
  System.out.println("c2 / c2= " +c2.div(c2));
  System.out.println("c1 % c2= " +c1.mod(c2));
  System.out.println("c2 % c1= " +c2.mod(c1));
  System.out.println("c2 % c2= " +c2.mod(c2));
  ct=c2.div(c3);
  System.out.println("c2 / c3= " +ct);
  ct=ct.mult(c3);
  System.out.println("(c2 / c3) * c3 = " +ct);
 }
}

 i due file.  Grazie di nuovo-  :-)
Leggere le risposte no, eh? :)
-- 
Life's something u don't get out alive..
ObjectZone - 
http://space.tin.it/computer/csadun

 Tutorial Sun causa allergie o intolleranze?":
No ma un'esposizione continuata può causare il rallentamento 
dell'attività celebrale e nei casi più grave la sterilità! ;-D
Scherzi a parte dai un'occhiata al tutorial o ad un buon libro (ne hai 
uno vero?) le basi le trovi su 4/5 pagine al massimo.
 >>Che istruzioni devo mettere per catturare l'eccezione?
try
{
...
}
catch ([eccezzione_che_vuoi_gestire] e)
{
...
}
In bocca al lupo x questa notte. ;-)
Magellano