Pages: [1] 2   Go Down
Print
Author Topic: creazione eccezione  (Read 2992 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
rox
Forumista
***
Offline Offline

Posts: 633


« on: 14-03-2009, 08:03:16 »

salve colleghi vorrei creare una nuova eccezione estendendo la classe Exception,qualcuno saprebbe dirmi come si fa?nel file del prof  non l'ho capito bene per il fatto che usa la classe scanner mai utilizzata da noi!grazie in anticipo per la risposta.
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
Vivynz
Forumista Eroico
*****
Offline Offline

Gender: Female
Posts: 2.033


File reality.sys corrupted, Reboot Universe? Y/N


« Reply #1 on: 14-03-2009, 10:21:56 »

ma lo scanner serve solo per inserire l'input non centra con l'eccezione..
Logged

L'odrine delle lttere dnetro una praorla non è ipmortatne, la sloa cosa ipmortatne è che la pmria e l'utlima ltteera sinao nel potso giutso. Il rseto può essree in un dsiodrine più totlae e voi ptoerte smerpe lggeree sneza porblmea.
Fr3d3R!K
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.463



« Reply #2 on: 14-03-2009, 10:43:49 »

EDITED
scusate l'erroruccio, non ci ho fatto caso...
« Last Edit: 14-03-2009, 16:21:37 by Fr3d3R!K » Logged

Search Button, CODE Tag, Google & Italian language are your friends! Use Them!
rox
Forumista
***
Offline Offline

Posts: 633


« Reply #3 on: 14-03-2009, 16:03:13 »

non ho capito niente! qualcuno mi può aiutare?
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
Aigor
Forumista Esperto
****
Offline Offline

Gender: Male
Posts: 1.184


"Il destino non è una catena, ma un volo."[A.B.]


« Reply #4 on: 14-03-2009, 16:20:17 »

non è possibile pubblicare codice sulla sezione programmazione 2, non so se ne eri a conoscenza, quindi utilizza e studia gli esempi e il codice del professore.
Logged

"Era d'altronde uno di quegli uomini che amano assistere alla propria vita, ritenendo impropria qualsiasi ambizione a viverla.
Si sarà notato che essi osservano il loro destino nel modo in cui, i più, sono soliti osservare una giornata di pioggia." - Seta,Baricco
zElOtO
Forumista
***
Offline Offline

Gender: Male
Posts: 845



WWW
« Reply #5 on: 14-03-2009, 16:22:49 »

non è possibile pubblicare codice sulla sezione programmazione 2, non so se ne eri a conoscenza, quindi utilizza e studia gli esempi e il codice del professore.


Why??
Logged

I computer sono incredibilmente veloci, accurati e stupidi. Gli uomini sono incredibilmente lenti, inaccurati e intelligenti. Insieme sono una potenza che supera l'immaginazione. (A. Einstein)

Damiano Cancemi
www.damianocancemi.com
www.nerdbren.com
www.nerdbren.com/blog
rox
Forumista
***
Offline Offline

Posts: 633


« Reply #6 on: 14-03-2009, 16:31:59 »

perchè non si può scrivere codice?
cmq prof se vede questo topic mi potrebbe spiegare come si fa a creare una nuova eccezione ?grazie in anticipo
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
djjeck
Matricola
*
Offline Offline

Gender: Male
Posts: 89


Ho una donna nuda per avatar. Non c'era di meglio.


WWW
« Reply #7 on: 14-03-2009, 17:36:13 »

Caspita, che provvedimento drastico!
Ma è permesso cercare codice tramite google? o le matricole hanno un blocco con l'ISP?

Se vuoi estendere la classe Exception significa che hai l'esigenza di lanciare un'eccezione diversa da quelle che java fornisce (IllegalArgument, ArrayIndexOutOfBounds, Mathematical), e che abbia qualche peculiarità, solitamente la conservazione di un qualche dato necessario alla sua gestione.
Se non è questo il caso, probabilmente non ti serve, ti basta una RuntimeException generica.

Se vuoi estendere un'eccezione, ti basta creare una nuova classe che estenda Exception. Fine.
Le eccezioni sono normalissime classi. Se dentro ci vuoi mettere un array, un contatore, un metodo compareTo, è come per tutte le altre classi.

Altri dubbi?
Logged
isuccia89
Apprendista Forumista
**
Offline Offline

Gender: Female
Posts: 481



« Reply #8 on: 14-03-2009, 17:52:51 »

non è possibile pubblicare codice sulla sezione programmazione 2, non so se ne eri a conoscenza, quindi utilizza e studia gli esempi e il codice del professore.


forse non è possibile pubblicare codici ke servono da "soluzione" ma se qualcuno ha un dubbio e vuole postare il lavoro ke ha fatto x eventuali chiarimenti e correzioni non può?
Logged

Se incontrerai qualcuno persuaso di saper tutto e di esser capace di far tutto non potrai sbagliare, costui è un imbecille! (Confucio)
zElOtO
Forumista
***
Offline Offline

Gender: Male
Posts: 845



WWW
« Reply #9 on: 14-03-2009, 19:49:32 »

Capisco che postare la soluzione senza che venga capita non serve a molto..Ma a volte è parecchio utile..Boh io sono contrario  boh
Logged

I computer sono incredibilmente veloci, accurati e stupidi. Gli uomini sono incredibilmente lenti, inaccurati e intelligenti. Insieme sono una potenza che supera l'immaginazione. (A. Einstein)

Damiano Cancemi
www.damianocancemi.com
www.nerdbren.com
www.nerdbren.com/blog
rox
Forumista
***
Offline Offline

Posts: 633


« Reply #10 on: 14-03-2009, 20:16:23 »

io volevo creare una eccezione com e quella che si scatena non appena si tenta una divisione per 0.l'eccezione che io voglio fare deve essere scatenata non appena si tentea di stampare a video il risultato di un numero per 4.cioè se io  scrivo System.out.println(n*4) il compilatore mi deve segnalare un errore del tipo[ Exception in thread "main" java.lang.ArithmeticException: * four.]avete capito cio che voglio dire?spero di sì.attendo risposte.grazie in anticipo
« Last Edit: 14-03-2009, 20:18:29 by rox » Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
djjeck
Matricola
*
Offline Offline

Gender: Male
Posts: 89


Ho una donna nuda per avatar. Non c'era di meglio.


WWW
« Reply #11 on: 14-03-2009, 22:47:39 »

Allora quello che vuoi fare tu non è creare una nuova eccezione, è creare un nuovo trigger di eccezioni.
Beh, non puoi.
Le eccezioni possono essere generate in due modi: o esplicitamente, con "throw new ..." oppure dalla Java Virtual Machine.

Per i casi base, come quando dividi un numero per 0, o accedi ad una locazione inesistente di un array, è l'interprete JVM che genera automaticamente un'eccezione, e la passa al codice scritto da te. Non puoi creare niente di simile, via codice.

Le uniche eccezioni che puoi creare sono del tipo via codice.
Se vuoi creare un'eccezione che agisce sulla moltiplicazione, devi fare in modo che ci sia codice scritto da te che intercetta un tentativo di moltiplicazione. E poi, una volta intercettata, scrivi "throw new ArithmeticException"
Ma temo non sia fattibile. La tua richiesta mi sembra quantomeno strampalata, sei sicuro che ti serva un'eccezione? Non basta evitare di moltiplicare per 4?

Inoltre: non è il compilatore che segnala le eccezioni. Le eccezioni sono in fase di esecuzione, non di compilazione. Non vorrei puntualizzare troppo, ma dato che la tua richiesta non mi è chiara, cerco di fare chiarezza quanto posso...
Logged
ottobit
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 186


!nope!


« Reply #12 on: 14-03-2009, 23:12:00 »

L'eccezione "tipo" fatta a lezione riguardante la divisione per zero conteneva due costruttori:

Il primo senza parametri in entrata.
Il secondo con una stringa messaggio.

Credo che l'implementazione standard di un'eccezione sia questa,ma forse il tuo problema sta nel capire il punto esatto in cui lanciarla,cioè quando verrà stampato (N dato in input moltiplicato per 4)?

ps.:Si è capito quello che volevo dire??? boh
ps.2:Perchè non si può lanciare l'eccezione quando si tenta di stampare a video n*4,credo di non aver capito.....!?
Logged
djjeck
Matricola
*
Offline Offline

Gender: Male
Posts: 89


Ho una donna nuda per avatar. Non c'era di meglio.


WWW
« Reply #13 on: 14-03-2009, 23:27:19 »

Perchè non si può lanciare l'eccezione quando si tenta di stampare a video n*4,credo di non aver capito.....!?

In parole povere e pratiche, un'eccezione si può lanciare soltanto così:
Code:
if(condizione che non va bene)
    throw new QualEIlProblemaException("descrizione del problema");

In questo caso che ci metti dentro l'if?
Non puoi catturare l'evento di stampa, né quello di moltiplicazione.
Come dicevo prima, se un'eccezione viene lanciata quando si fanno operazioni base, come la divisione, non è perché è stato scritto del codice che lo fa, ma perché lo fa la JVM automaticamente, ed il suo comportamento non si può modificare.

E poi da quanto ho capito, non dovrebbe essere limitato alla stampa, l'eccezione dev'essere lanciata in una qualsiasi operazione di moltiplicazione, se almeno uno dei due fattori vale 4.
Logged
ottobit
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 186


!nope!


« Reply #14 on: 15-03-2009, 03:53:05 »

OPS........Hai perfettamente ragione,dimenticavo che all'interno dell'if ci stanno soltanto valori di confronto......

Ma, se come dici tu, il controllo viene fatto durante il confronto, ipotizzando che verrà subito dopo stampato, non va bene uguale?O si va fuori tema....?E soprattutto quest'esercizio esiste??perchè mi sembra poco utile..
Logged
Pages: [1] 2   Go Up
Print
Jump to: