|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Aug 2005
Messaggi: 49
|
[JAVA] Gestione exceptions in ubuntu e windows
Salve a tutti, ho un piccolo problemino con una applicazione Java che ho scritto sotto wondows e che ora, in nome della portabilità di Java, voglio eseguire sotto ubuntu.
L'applicazione in se funziona bene, tranne che per la gestione delle eccezioni. Es. Se ho System.exit(-1), ottengo i due seguenti output: --->Windows: Java Result: -1 --->Ubuntu: Java Result: 255 Oppure, con System.exit(-1976), ottengo: --->Windows: Java Result: -1976 --->Ubuntu: Java Result: 72 Sarà una domanda banale, ma non riesco a capire che cosa combina?!? E' come se gestisse correttamente solo i codici di eccezione tra 0 e 255. Mi potete dire se e come è possibile risolvere il problema senza essere costretto a combiare tutti i codici di errore? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
|
Sono andato a cercare tra la documentazione ma non ho trovato niente a riguardo, non saprei come aiutarti.
Ma come mai usi valori negativi??scusa che senso ha?qual'è la comodità?
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes] "Pirating software? Choose Microsoft!" |
|
|
|
|
|
#3 | |
|
Member
Iscritto dal: Aug 2005
Messaggi: 49
|
Quote:
Ho notato che anche usando valori positivi, se vado oltre 255, sotto linux mi viene visualizzato il codice in modulo 255. |
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
|
Quote:
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes] "Pirating software? Choose Microsoft!" |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Credo che il significato dei codici di uscita di un processo sia strettamente legato alle convenzioni del sistema operativo in cui ci si trova.
Detto questo però mi fa strano sapere che se chiamo System.exit() con argomento -1 sotto Ubuntu mi converta il codice di uscita... Non lo sapevo, magari qualcuno esperto di s.o. sa perchè (non vorrei dire frescacce ma potrebbe essere la JVM che dietro le quinte fa quella conversione sulla base del s.o. sottostante)
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
#6 | |
|
Member
Iscritto dal: Aug 2005
Messaggi: 49
|
Quote:
Inoltre se impongo sotto linux come codice di uscita 256 => Ottengo un bel System.exit(0), cioè mi dice che il programma è uscito correttamente, ma ciò non è assolutamente vero! Potrebbe anche trattarsi di una dimenticanza dei progettisti dell Sun verso linux, ma non credo sia così vista l'attenzione che sun dedica all'open source. |
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
|
Quote:
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes] "Pirating software? Choose Microsoft!" |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Nov 2007
Città: Bergamo
Messaggi: 307
|
Non vorrei dire castronerie, ma credo che sia una limitazione della shell unix.
Facendo un semplicissimo script che esce con -1 il risultato è questo: Codice:
sh-2.05b$ cat prova.sh #!/bin/sh echo "Ciao" exit -10 sh-2.05b$ ./prova.sh Ciao sh-2.05b$ echo $? 246 sh-2.05b$ Io ho internet filtrato, quindi non posso fare ricerche piu' approfondite. |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Mmm... qua ci vorrebbe una risposta da ilsensine, ma è da parecchio che non lo vedo postare.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
#10 |
|
Member
Iscritto dal: Aug 2005
Messaggi: 49
|
Ho trovato questo articolo:
http://bugs.sun.com/bugdatabase/view...bug_id=4680945 Sembra che il problema sia segnalato e irrisolto dal lontato 2002. Si riporta infatti che: "Can't be fixed, since we can distinguish processes returning -1 and 255 on Linux." |
|
|
|
|
|
#11 | ||
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Quote:
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
||
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Feb 2007
Città: Verona
Messaggi: 1060
|
Penso che ci possa venire in aiuto il file stdlib.h (rif. /usr/include/stdlib.h)
Codice:
/* We define these the same for all machines. Changes from this to the outside world should be done in `_exit'. */ #define EXIT_FAILURE 1 /* Failing exit status. */ #define EXIT_SUCCESS 0 /* Successful exit status. */ Codice:
extern void exit (int __status) __THROW __attribute__ ((__noreturn__)); Da notare che lo standard è 0 = successo, 1 = fallimento. Penso che per esiti negativi di exit si possano usare anche altri codici, ma solamente positivi meh
__________________
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:34.




















