 | |
Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum |
[Java] Maledette Eccezioni... Clicca QUI per vedere il messaggio nel forum |
vampiro85 |
ciao a tutti...
qualcuno sarebbe cosi gentile da spiegarmi perchè il main dato da malchiodi mi dà ste errore???
<<C:\Programmi\Java\jdk1.5.0_03\bin\Programma.java:51: <<unreported exception InvalidVariableException; must be <<caught or declared to be thrown
<< s3.esegui();
<< ^
è sicuramente un problema del mio programma(non di quello di malchiodi) xò non so + che fare!!! sono in crisi fex...
QUALKUNO MI AIUTI PER FAVORE!!! |
ARIEL |
Prova a vedere se hai lanciato tutte le eccezioni compresa InvalidVariableException nei metodi esegui delle varie classi! |
vampiro85 |
si... cioè... penso di aver fatto giusto x' non da errori nel mio programma... non so + che dire... se vuoi guadarlo ti passo il sorgente... |
sandrino83 |
ariel ma tu come la gestisci la executeException? Nel senso...nel programma.java è nel catch in fondo ma nelle classi estese ci sono le altre..... |
Vikyg13 |
Io invece quando faccio partire il main mi dice che non riesce a trovare la classe ExecutionException riferendosi alla riga "catch(ExecutionException e)" del main
Come mai secondo voi?? |
sandrino83 |
vikyg13.....idem succede a me |
Joda |
dovete importare il package corretto, sempre che non sia un' eccezione di sistema. |
sandrino83 |
in ke senso....quale package.......non è un'eccezione di sistema.....penso |
sandrino83 |
in ke senso....quale package.......non è un'eccezione di sistema.....penso........se modifico programma.java e in fondo nel catch sostituisco executionexception con exception funziona tutto a meraviglia........... |
Vikyg13 |
Si vero, funziona anche a me se faccio quello che dice sandrino!Non so se mi funziona correttamente però il prgramma parte |
Joda |
Originally posted by Vikyg13
Si vero, funziona anche a me se faccio quello che dice sandrino!Non so se mi funziona correttamente però il prgramma parte
dunque il package che Java carica di default è java.lang, infatti le classi String, Integer, etc fanno parte di questo package, mentre le altre bisogna eseguire l'import dei package idonei
l'eccezione incriminata è un'eccezione del package java.lang ? se si la deve vedere se no bisogna fare l'import della package idoneo.
import ????
attenta se è richiesto di catchare quella eccezione vuol dire che nel codice ci deve essere un catch(eccezione). |
Vikyg13 |
Si ho capito cosa vuoi dire, ma l'import l'ho controllato, è corretto!! |
Vikyg13 |
Ho risolto, sandrino,t sto mandando un pm |
Joda |
Originally posted by Vikyg13
Si ho capito cosa vuoi dire, ma l'import l'ho controllato, è corretto!!
allora o non viene importata il package o non viene mai lanciata quel tipo di eccezione. |
sandrino83 |
in quale classe va importato? |
Vikyg13 |
Ho risolto, sbagliavo io nell'importazione! |
spenk.85 |
scusa, ma executionexception è la "superclasse" delle altre eccezioni che può lanciare il prog? |
sandrino83 |
esattamente......infatti se ci fai caso executionexception è un errore generico che non viene mai lanciato in modo specifico nel codice mentre le altre eccezzioni sonosottoclassi della stessa.............. |
spenk.85 |
bella! almeno le eccezione sono giuste,,,ora parte l'operazione clone! |
Crashman |
Voi come le avete fatte, controllate o non controllate? |
spenk.85 |
non controllate, non è richiesto nessuno controllo se non sbaglio |
Skioda86 |
Ragazzi, sapete cosa sia questo errore??? Non l'avevo mai visto prima:
Exception in thread "main" java.lang.NumberFormatException: For input string: "arg1"
at java.lang.NumberFormatException.forInputString<Unknown Source>
at java.lang.Integer.parseInt<Unknown source>
at java.lang.Integer.parseInt<Unknown source>
at Selezione.esegui<Selezione.java:38>
at Sequenza.esegui<Sequenza.java: 13>
at Programma.main<Programma.java: 50>
- Dove alla riga 38 della Selezione ho:
if(Integer.parseInt(variabile) <= valore)
- Dove alla riga 13 di Sequenza ho:
elenco[i].esegui();
-Dove alla riga 50 del programma ho:
s3.esegui();
Premetto che in dos scrivo ....> java Programma 1 2
Ho modificato stamane la classe Sequenza in cui, non avendo capito cosa deve fare il metodo esegui di questa classe, ho provato a scrivere:
for(int i=0;i<elenco.length;i++)
elenco[i].esegui();
e dopodichè ho "aggiustato" qua e la le altre classi come mi pareva di ritenere giusto, ma da quel momento è cominciato ad uscire questo errore!!! HELP |
Joda |
Originally posted by Skioda86
Ragazzi, sapete cosa sia questo errore??? Non l'avevo mai visto prima:
Exception in thread "main" java.lang.NumberFormatException: For input string: "arg1"
at java.lang.NumberFormatException.forInputString<Unknown Source>
at java.lang.Integer.parseInt<Unknown source>
at java.lang.Integer.parseInt<Unknown source>
at Selezione.esegui<Selezione.java:38>
at Sequenza.esegui<Sequenza.java: 13>
at Programma.main<Programma.java: 50>
- Dove alla riga 38 della Selezione ho:
if(Integer.parseInt(variabile) <= valore)
- Dove alla riga 13 di Sequenza ho:
elenco[i].esegui();
-Dove alla riga 50 del programma ho:
s3.esegui();
Premetto che in dos scrivo ....> java Programma 1 2
Ho modificato stamane la classe Sequenza in cui, non avendo capito cosa deve fare il metodo esegui di questa classe, ho provato a scrivere:
for(int i=0;i<elenco.length;i++)
elenco[i].esegui();
e dopodichè ho "aggiustato" qua e la le altre classi come mi pareva di ritenere giusto, ma da quel momento è cominciato ad uscire questo errore!!! HELP
Così sembra che non riesca a convertire il valore passato a parseInt, comunque c'e' sempre il vecchio metodo della nonna lo step-by-step per trovare gli errori :) |
Skioda86 |
Originally posted by Joda
Così sembra che non riesca a convertire il valore passato a parseInt, comunque c'e' sempre il vecchio metodo della nonna lo step-by-step per trovare gli errori
Esatto!! Sembra che richiamado nell'esegui del metodo Sequenza (in cui faccio eseguire tutte le istruzioni all'interno dell'array elenco) in questo modo elenco[i].esegui() non riesca più a trasformare in numero la stringa che dovrei avergli dato in input, ma no stroverà neanche la stringa perchè gia utilizzata in precedenza....NO??!!!
Cmq è tutta mattina che provo. Se tolgo elenco[i].esegui() funziona tutto alla perfezione (O QUASI....DICIAMO PERFEZIONE FIN DOVE SONO RIUSCITO AD ARRIVARE)...Se invece lo lascio...nn va più niente....ed esce quel bel errore di prima....ke palle!!! |
Joda |
Originally posted by Skioda86
Esatto!! Sembra che richiamado nell'esegui del metodo Sequenza (in cui faccio eseguire tutte le istruzioni all'interno dell'array elenco) in questo modo elenco[i].esegui() non riesca più a trasformare in numero la stringa che dovrei avergli dato in input, ma no stroverà neanche la stringa perchè gia utilizzata in precedenza....NO??!!!
Cmq è tutta mattina che provo. Se tolgo elenco[i].esegui() funziona tutto alla perfezione (O QUASI....DICIAMO PERFEZIONE FIN DOVE SONO RIUSCITO AD ARRIVARE)...Se invece lo lascio...nn va più niente....ed esce quel bel errore di prima....ke palle!!!
usi un editor tipo eclipse ? se si puoi fare il debug passo passo ... in modo da capire esattamente quale sia la riga.
togliendo esegui va tutto (+ o -) allora può darsi che sia esegui strutturata male.
Però ripeto senga un debug step by step ci capisci poco e nulla ( a mano penso sia da suicidio). |
sbrandu |
Ma scusate il proble non è forse che il metodo parse int applicato a una stringa funziona solo se la stringa contiene un valore(sotto forma di stringa tipo variabile="1").. in questo caso variabile contiene dei caratteri che formano la stringa tipo variabile="arg1", quindi il metodo parseInt non può (credo) convertire la scritta in un valore intero.
Forse dovresti riferirti al valore contenuto in variabile richiamandolo dall'hashtable tipo hashtable.get(variabile) <- questa istruzione fa riferimento al valore della variabile variabile in hastable che credo sia ciò chhe ti serve.. |
Joda |
Originally posted by sbrandu
Ma scusate il proble non è forse che il metodo parse int applicato a una stringa funziona solo se la stringa contiene un valore(sotto forma di stringa tipo variabile="1").. in questo caso variabile contiene dei caratteri che formano la stringa tipo variabile="arg1", quindi il metodo parseInt non può (credo) convertire la scritta in un valore intero.
Forse dovresti riferirti al valore contenuto in variabile richiamandolo dall'hashtable tipo hashtable.get(variabile) <- questa istruzione fa riferimento al valore della variabile variabile in hastable che credo sia ciò chhe ti serve..
certamente se a parseInt passi una stringa di caratteri, non converte nulla e viene generata un'eccezione. |
sbrandu |
Beh allora skioda86 non ti resta che correggere..:D |
Skioda86 |
sbrandu
Ma scusate il proble non è forse che il metodo parse int applicato a una stringa funziona solo se la stringa contiene un valore(sotto forma di stringa tipo variabile="1").. in questo caso variabile contiene dei caratteri che formano la stringa tipo variabile="arg1", quindi il metodo parseInt non può (credo) convertire la scritta in un valore intero.
Forse dovresti riferirti al valore contenuto in variabile richiamandolo dall'hashtable tipo hashtable.get(variabile) <- questa istruzione fa riferimento al valore della variabile variabile in hastable che credo sia ciò chhe ti serve..
Joda
Certamente se a parseInt passi una stringa di caratteri, non converte nulla e viene generata un'eccezione.
sbrandu
Beh allora skioda86 non ti resta che correggere..:D
Grazie ragazzi....Sì è vero, sono 1 PIRLA!!!:wall:
Ma sapete...stando davanti al PC ore ed ore :pc:per poi vederti sparare fuori ste cagate, anche gli errori più semplici NON SI RIESCONO PIU' A SCOVARE!!!!
Cmq ora il mio dilemma è un altro...è un'altra piccola eccezione che mi esce....ma sinceramente non l'ho mai vista. Appena trovo il modo di sviarla la posto con la relativa soluzione...!!!
Intanto non ci resta che SOFFRIRE...!!!!
Pensate che ora ho appena provato il programma dopo delle modifiche alla hashtable e INDOVINATE 1 PO'!!!???
Mi dice che c'è un errore in questo SEMPLICISSIMO
if (decremento < 0){
decremento= ((int)memoria.get(variabile)) - decremento;
memoria.remove(variabile);
memoria.put(variabile,((Integer) decremento);}
C'è proprio da impazzire!!! Mi stà a tirà per il :sedere:!!!
Boh ads...vado a sistemare un pò!! Un'altra cosa...
qualcuno è capace di usare
Map.Entry ???? POSTATE...POSTATE!!!
BYEEEEEEEEEEEEEEEEEEEE E BUON LAVORO A TUTTI!!! |
Crashman |
code: {
decremento= ((int)memoria.get(variabile)) - decremento;
memoria.remove(variabile);
memoria.put(variabile,((Integer) decremento);}
Tutto questo si poteva fare in un unica istruzione :) |
Skioda86 |
Crashman
code: {
decremento= ((int)memoria.get(variabile)) - decremento;
memoria.remove(variabile);
memoria.put(variabile,((Integer) decremento);}
Tutto questo si poteva fare in un unica istruzione :)
Posso sapere quale??? Usando il set...qualcosa che ora non ricordo??? :D THANKS....
W OPEN SOURCE!!!! |
Skioda86 |
Crashman
code: {
decremento= ((int)memoria.get(variabile)) - decremento;
memoria.remove(variabile);
memoria.put(variabile,((Integer) decremento);}
Tutto questo si poteva fare in un unica istruzione :)
L'istruzione a cui ti riferivi era forse:
memoria.put(variabile,(memoria.get(variabile) - ((Integer)decremento));
:D :D :D ::pc:
Ma sai...preferisco agire di mano mia sulla hashtable...almeno "sò" cosa stò facendo....O ALMENO SI SPERA
:):):)
W OPEN SOURCE |
Drowne |
C'è bisogno di fare il remove prima di fare un put o è solo una precauzione? |
Joda |
Originally posted by Drowne
C'è bisogno di fare il remove prima di fare un put o è solo una precauzione?
dipende dal contesto, puoi fare anke un set (sempre se si può ora non ricordo) ? |
Drowne |
come si usa il set, scusami?
se faccio memoria.set(variabile,valore); da errore in compilazione... |
Joda |
Originally posted by Drowne
come si usa il set, scusami?
se faccio memoria.set(variabile,valore); da errore in compilazione...
puodarsi che non sia un metodo supportato, ora non mi ricordo... controlla nella doc della hashtable. |
sbrandu |
Nessuno è riuscito a sbrogliare il problema dell'indentazione? |
sbrandu |
Nessuno è riuscito a sbrogliare il problema dell'indentazione?
Io ci sto provando cercando di utilizzare come aveva detto qualcuno il metoto istanceof, ma è come se java non lo riconoscesse.. |
Crashman |
Originally posted by sbrandu
Nessuno è riuscito a sbrogliare il problema dell'indentazione?
Io ci sto provando cercando di utilizzare come aveva detto qualcuno il metoto istanceof, ma è come se java non lo riconoscesse..
Non serve istanceof...
la soluzione a questo problema è decisamente più facile di quello che pensate ;) |
Drowne |
ok, nulla avevo scritto una stronzata ^_^
edit :D |
Crashman |
Originally posted by Drowne
qualcuno mi sa dire se questa identazione va bene?
No l'identazione corretta è questa:
code: crashman@linux> java Programma 3 4
DECLARE s;
DECLARE arg1;
arg1 = 3;
IF (arg1<=0)
PRINT "Primo argomento invalido";
ELSE
DECLARE arg2;
arg2 = 4;
IF (arg2<=0)
PRINT "Secondo argomento invalido";
ELSE
WHILE (arg1!=0)
arg1 -= 1;
s += 1;
WHILE (arg2!=0)
arg2 -= 1;
s += 1;
PRINT s;
7
;) |
sbrandu |
Un aiutino Crashman tu che ce l'hai fatta per l'indentazione? |
|
|
|
|