Pages: [1] 2   Go Down
Print
Author Topic: Eccezioni Mancanti!!  (Read 2813 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
callo
Forumista
***
Offline Offline

Gender: Male
Posts: 564


"Quanto manca alla vetta?";"Tu sali e non pensare"


« on: 01-02-2011, 12:27:07 »

Ragazzi qualcuno di voi a provato a lanciare nei propri codici(specialmente quelli inerenti gli stack,le code e le code doppie!) eccezioni come:
1)FullStackException
2)EmptyQueueException
3)EmptyDequeException

Pure a voi succede che,nonostante la java.lang.* e java.util.* , siano importate vi segnala un errore ???Come avete risolto? ]
« Last Edit: 01-02-2011, 15:54:24 by soeca » Logged

"A cavallina....a cavallina.....a chi era bedda quannu  curreva" [Cit.  Dal Tenerissimo via plebiscito]
Crazy Diamond
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 243



WWW
« Reply #1 on: 01-02-2011, 12:57:08 »

Scusa, ma questa libreria net.datastructures l'hai importata?

Quelle eccezioni non sono eccezioni presenti in Java, ma create da terzi ed inserite in una libreria che, appunto, si chiama net.datastructures

Importa quella libreria e ti funziona tutto 

ps: importare tutta la libreria lang e tutta la libreria util è da pazzi! Importa sempre e solo quello che ti serve!
Logged

"God does not care about our mathematical difficulties. He integrates empirically." (A. Einstein)
________________________

www.davidemoltisanti.com | La mia galleria fotografica
callo
Forumista
***
Offline Offline

Gender: Male
Posts: 564


"Quanto manca alla vetta?";"Tu sali e non pensare"


« Reply #2 on: 01-02-2011, 13:12:07 »

Grazie per il consiglio.....ma ascolta importando la java.lang.RuntimeException non dovrebbe importarmele direttamente???Se è così perchè ciò non succede???
Logged

"A cavallina....a cavallina.....a chi era bedda quannu  curreva" [Cit.  Dal Tenerissimo via plebiscito]
Crazy Diamond
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 243



WWW
« Reply #3 on: 01-02-2011, 13:25:42 »

Ripeto:

le eccezioni che hai riportato tu non ci sono nelle librerie java! Sono state create da qualcuno, che ha creato poi la libreria net.datastructures

Se vedi nella documentazione java noti che le eccezioni da te elencate non ci sono:

http://download.oracle.com/javase/1.4.2/docs/api/java/lang/RuntimeException.html

Quindi, se proprio vuoi usare quelle eccezioni, ti scarichi la libreria net.datastructures e la importi!

Sono stato chiaro? 
Logged

"God does not care about our mathematical difficulties. He integrates empirically." (A. Einstein)
________________________

www.davidemoltisanti.com | La mia galleria fotografica
callo
Forumista
***
Offline Offline

Gender: Male
Posts: 564


"Quanto manca alla vetta?";"Tu sali e non pensare"


« Reply #4 on: 01-02-2011, 15:53:04 »

Chiarissimo!!Grazie mille! Già che ci siamo potresti spiegarmi una cosa gentilmente?ho scaricato il file net.datastructures.jar ma come lo importo??Cioè il comando da inserire per importare un intero package oppure per importare un file jar che si trova in una qualsiasi directory  qual è??Grazie ancora!
Logged

"A cavallina....a cavallina.....a chi era bedda quannu  curreva" [Cit.  Dal Tenerissimo via plebiscito]
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.475


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #5 on: 01-02-2011, 16:11:28 »

Chiarissimo!!Grazie mille! Già che ci siamo potresti spiegarmi una cosa gentilmente?ho scaricato il file net.datastructures.jar ma come lo importo??Cioè il comando da inserire per importare un intero package oppure per importare un file jar che si trova in una qualsiasi directory  qual è??Grazie ancora!
Qua devi fare un po' di allenamento su come gestire i package all'interno del classpath.

Il classpath è l'unione delle cartelle e dei file .JAR elencati in:
-variabile d'ambiente CLASSPATH dell'utente che avvia java <nomeclasseprincipale>/javac <file java>
-(eventuale) parametro -classpath (o -cp) passato a java/javac

Ogni classe non faccia parte del runtime standard della particolare implementazione della JVM che tu usi (Sun/Oracle JDK od OpenJDK per es.) deve stare in una (sotto)cartella di una delle cartelle o dei file .jar (vengono visti come cartelle a questo livello anch'essi) presenti nel classpath.

Il parametro classpath da fornire a java/javac va specificato dopo -cp o -classpath
Esempio:
Code:
java -cp . nomeclasse
Indica che il classpath conterrà ., ovvero la cartella corrente da cui viene invocato il comando java (la cartella corrente è quella che viene mantenuta dal prompt dei comandi/terminale quando invochi java o, per i Collegamenti di windows, quella che viene specificata nella sezione "Da:" della scheda "Collegamento" della finestra delle Proprietà del collegamento).
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #6 on: 01-02-2011, 16:28:32 »

Io gestivo l' eccezione creando una classe con il nome della mia eccezione, che estendeva la classe RunTimeException, eredidando il costruttore e potevo lanciare l' eccezione con un messaggio:

Code:
class EmptyStackException extends RuntimeException
{
public EmptyStackException(String err)
{
super(err);
}
}

Ovviamente una classe da inserire all' interno del codice che contiene la classe pubblica stack per esempio.
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
callo
Forumista
***
Offline Offline

Gender: Male
Posts: 564


"Quanto manca alla vetta?";"Tu sali e non pensare"


« Reply #7 on: 01-02-2011, 22:03:39 »

Chiarissimo!!Grazie mille! Già che ci siamo potresti spiegarmi una cosa gentilmente?ho scaricato il file net.datastructures.jar ma come lo importo??Cioè il comando da inserire per importare un intero package oppure per importare un file jar che si trova in una qualsiasi directory  qual è??Grazie ancora!
Qua devi fare un po' di allenamento su come gestire i package all'interno del classpath.

Il classpath è l'unione delle cartelle e dei file .JAR elencati in:
-variabile d'ambiente CLASSPATH dell'utente che avvia java <nomeclasseprincipale>/javac <file java>
-(eventuale) parametro -classpath (o -cp) passato a java/javac

Ogni classe non faccia parte del runtime standard della particolare implementazione della JVM che tu usi (Sun/Oracle JDK od OpenJDK per es.) deve stare in una (sotto)cartella di una delle cartelle o dei file .jar (vengono visti come cartelle a questo livello anch'essi) presenti nel classpath.

Il parametro classpath da fornire a java/javac va specificato dopo -cp o -classpath
Esempio:
Code:
java -cp . nomeclasse
Indica che il classpath conterrà ., ovvero la cartella corrente da cui viene invocato il comando java (la cartella corrente è quella che viene mantenuta dal prompt dei comandi/terminale quando invochi java o, per i Collegamenti di windows, quella che viene specificata nella sezione "Da:" della scheda "Collegamento" della finestra delle Proprietà del collegamento).

Ti ringrazio tantissimo per l'aiuto però potresti gentilmente farmi il "fatidico esempio chiarificatore" ??Supponendo che il file jar io l'abbia in questa directory "/home/carlo"  come potrei importarla direttamente nel programma e non in fase di compilazione??Grazie ancora!
Logged

"A cavallina....a cavallina.....a chi era bedda quannu  curreva" [Cit.  Dal Tenerissimo via plebiscito]
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.475


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #8 on: 01-02-2011, 22:46:53 »

Ti ringrazio tantissimo per l'aiuto però potresti gentilmente farmi il "fatidico esempio chiarificatore" ??Supponendo che il file jar io l'abbia in questa directory "/home/carlo"  come potrei importarla direttamente nel programma e non in fase di compilazione??Grazie ancora!
Prego.

Comunque stai confondendo le cose: non esiste l'importazione "diretta" o di altro tipo, esiste solo l'importazione e basta.

Il classpath va comunque specificato sia quando compili sia quando esegui, sempre .
Supponendo che dentro al file
/home/carlo/mioBellArchivio.jar
ci siano il file
package1/miaClasse.class (cioè il file miaClasse.class sia dentro a una cartella chiamata package1 dentro al file .jar)
e tu voglia importarlo nel tuo codice, puoi usare questo per farlo funzionare:
fai in modo che classpath contenga /home/carlo/mioBellArchivio.jar
(ad esempio eseguendo java -cp /home/carlo/mioBellArchivio.jar miofile.java) e dentro al file miofile.java tu scrivi
import package1.miaClasse;
e poi usi il nome "miaClasse" come vuoi

oppure non scrivi la import e direttamente usi nel codice
package1.miaClasse
quando vuoi usare la classe miaClasse riferendoti a quel nome.
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
callo
Forumista
***
Offline Offline

Gender: Male
Posts: 564


"Quanto manca alla vetta?";"Tu sali e non pensare"


« Reply #9 on: 02-02-2011, 00:59:52 »

Code:
[carlo@soeca ~]$ java -cp /home/carlo/net-datastructures-5-0.jar  /media/9d893d0a-fa19-414d-9467-39bebc3e9454/Progetti\ Java/Deque/src/Deque.java
Exception in thread "main" java.lang.NoClassDefFoundError: /media/9d893d0a-fa19-414d-9467-39bebc3e9454/Progetti Java/Deque/src/Deque/java
Caused by: java.lang.ClassNotFoundException: .media.9d893d0a-fa19-414d-9467-39bebc3e9454.Progetti Java.Deque.src.Deque.java
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: /media/9d893d0a-fa19-414d-9467-39bebc3e9454/Progetti Java/Deque/src/Deque.java.  Program will exit.
cosa posso capire da ciò(oltre al fatto che non trova il main....ma mi sembra normale visto che sto implementando una classe senza main!)??
Logged

"A cavallina....a cavallina.....a chi era bedda quannu  curreva" [Cit.  Dal Tenerissimo via plebiscito]
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.475


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #10 on: 02-02-2011, 01:20:46 »

Code:
[carlo@soeca ~]$ java -cp /home/carlo/net-datastructures-5-0.jar  /media/9d893d0a-fa19-414d-9467-39bebc3e9454/Progetti\ Java/Deque/src/Deque.java
Exception in thread "main" java.lang.NoClassDefFoundError: /media/9d893d0a-fa19-414d-9467-39bebc3e9454/Progetti Java/Deque/src/Deque/java
[...]
cosa posso capire da ciò(oltre al fatto che non trova il main....ma mi sembra normale visto che sto implementando una classe senza main!)??
Puoi capire che invece di compilare stai tentando di passare alla JVM un sorgente testuale Java boh


Quote
[carlo@soeca ~]$ java -cp /home/carlo/net-datastructures-5-0.jar  /media/9d893d0a-fa19-414d-9467-39bebc3e9454/Progetti\ Java/Deque/src/Deque.java
Exception in thread "main" java.lang.NoClassDefFoundError: /media/9d893d0a-fa19-414d-9467-39bebc3e9454/Progetti Java/Deque/src/Deque/java
[...]
Su, su, non sono questi gli errori di programmazione: prova ancora  
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
callo
Forumista
***
Offline Offline

Gender: Male
Posts: 564


"Quanto manca alla vetta?";"Tu sali e non pensare"


« Reply #11 on: 02-02-2011, 01:38:33 »

hai ragione non JAVA ma JAVAC!!Direi che così funziona.....in parte!!!perché è verissimo che poi nella mia classe riesco a importare il file.jar però appena provo a lanciare l'eccezione.class mi da il seguente errore:
Code:
EmptyDequeException cannot be resolved to a type
.....che noia....mo perché non gli piace???
Logged

"A cavallina....a cavallina.....a chi era bedda quannu  curreva" [Cit.  Dal Tenerissimo via plebiscito]
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.475


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #12 on: 02-02-2011, 02:21:33 »

Cosa sarebbe "l'eccezione.class" ? In che senso lanciarla ?

Forse conviene che posti il codice per intero ...
Anche se quasi certamente lo vedrò domattina boh!


Buona notteeeeeeeeeeeeeeeeeeeee !
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
callo
Forumista
***
Offline Offline

Gender: Male
Posts: 564


"Quanto manca alla vetta?";"Tu sali e non pensare"


« Reply #13 on: 02-02-2011, 03:10:41 »

Cosa sarebbe "l'eccezione.class" ? In che senso lanciarla ?

Forse conviene che posti il codice per intero ...
Anche se quasi certamente lo vedrò domattina boh!


Buona notteeeeeeeeeeeeeeeeeeeee !
Intendo che all'interno del file.jar ci sono moltissimi file.class che non sono altro che classi per la gestione delle eccezioni!!!esempio(così mi spiego meglio!)il metodo:
Code:
public E removeFirst() throws EmptyDequeException;
se la coda doppia è vuota lancia l'eccezione EmptyDequeException che è contenuta dentro il file.jar!!Soltanto che nonostante riesca ad importare tutto il package(o meglio tutto ciò che è contenuto dentro quel jar!) quel metodo mi da il seguente errore in compilazione:
Code:
EmptyDequeException cannot be resolved to a type
Ho cercato in internet cosa vuol dire questo tipo di errore e questo è quanto ho trovato:
Code:
there is a missing library!
........ ma come!Sembrava aver importato tutto!! boh
« Last Edit: 02-02-2011, 03:14:42 by soeca » Logged

"A cavallina....a cavallina.....a chi era bedda quannu  curreva" [Cit.  Dal Tenerissimo via plebiscito]
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.475


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #14 on: 03-02-2011, 01:34:18 »

Io ho scaricato lo stesso file tuo net-datastructures-5-0.jar, l'ho elencato fra i CLASSPATH, ho importato correttamente e sono riuscito senza problemi a istanziare un oggetto di classe EmptyDequeueException, in un mio codice banale che fa solo quello.

Forse il codice (non il .jar, proprio il codice .java) con cui stai avendo a che fare tu è stato scritto da te? In tal caso, l'importazione potrebbe essere stata fatta in modo diverso, per cui la cosa migliore prima di continuare questa discussione, che su questo punto non può fare altro che fermarsi, è postare l'intero codice (o almeno scrivi la riga che inizia con import dal/dai file che usano le classi del package esterno).

Buona notte  .
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
Pages: [1] 2   Go Up
Print
Jump to: