Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

URGENTE ! sulle eccezioni

0 views
Skip to first unread message

Roby

unread,
Nov 25, 2002, 7:12:43 AM11/25/02
to
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


Fabrizio Camera

unread,
Nov 25, 2002, 7:51:44 AM11/25/02
to
On Mon, 25 Nov 2002 13:12:43 +0100, Roby wrote:

[CUT]


>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 .

In base 10??
Ma non stavi parlando di esadecimali?? 8-|

>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.

Roby

unread,
Nov 25, 2002, 8:14:07 AM11/25/02
to
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);
}
}


Cristiano Sadun

unread,
Nov 25, 2002, 9:13:30 AM11/25/02
to
"Roby" <roby...@tiscali.it> wrote in
news:art7c5$g95$1...@lacerta.tiscalinet.it:

> Scusate per prima, non si capiva davvero niente.Provo a incollarvi quà
> 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

Magellano

unread,
Nov 25, 2002, 11:05:04 AM11/25/02
to
Fabrizio Camera wrote:
> Un giorno aprirò un thread su qualche ng di medicina dal titolo "Ma il
> 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

0 new messages