C'è un modo per differenziare programatically tra ciò che ha causato un IOException Per esempio java getterà una IOException, se c'è stato un errore durante la scrittura. Come faccio a sapere, se qualcosa di simile violazione di accesso, se il disco è lo spazio libero, se qualcuno scollegato l'unità alla rete, o di altre cose. Non posso davvero analizzare il messaggio in quanto, non sembra essere in qualsiasi formato standard di messaggio, Sun (o Oracle ora credo) doesnt sembrano avere alcun tipo di formato standard. Tutti i suggerimenti (sono abbastanza nuovo a Java, la sua non è la mia lingua normale, ma ho bisogno di usarlo per fissare un sistema molto spezzata sul posto di lavoro.) Ha chiesto 29 Luglio 10 in 15:29 Ottenere una sospensione delle eccezioni classe esatto darà sei uno di una manciata di possibili sottoclassi di IOException, e questi sono abbastanza standardizzate. È possibile classi di test con instanceof o (un approccio brutale) confrontare le stringhe restituite da getClass (). GetName (). Ci sono alcune soluzioni per le altre cose che si può fare un File. canWrite () in un file di sei in procinto di aprire per la scrittura (o meglio, il programma avrebbe dovuto fare che in ogni caso, se la directory nome Andor può variare), e se c'è un possibilità che ha esaurito lo spazio file, si potrebbe provare a scrivere un piccolo file in una buona posizione nota e vedere se che esplode su di voi. Non molto elegante, lo so: Java non è realmente conosciuta come un linguaggio di programmazione di sistemi. D'altra parte, molto spesso conoscendo una causa dettagliato per un non aiuta molto un'eccezione: Con o senza la conoscenza, l'utente potrebbe semplicemente non essere in grado di ottenere il programma per fare che cosa è necessario. risposto 29 Luglio 10 in 15:48 Una possibile addendum al primo comma - di solito cattura you39re - ing queste eccezioni, in modo un'alternativa più bella è quella di avere blocchi catch separate per FileNotFoundException. UnknownHostException. ecc Evita test quotexplicitquot e consente di gestire i casi speciali in diversi isolati dalla partenza (senza precludere un catch catch-all (IOException e) del blocco alla fine). ndash Andrzej Doyle 29 Luglio 10 in 16:07 Ahdrzej: You39re molto giusto. Stavo pensando di correzioni cerotto alla codifica preesistente e assumendo uberjumper didn39t vuole ri-organizzare le gerarchie di cattura esistenti (qualunque cosa ci può essere). Ma se si quotdoing rightquot è un'opzione, poi il vostro modo sarebbe. ndash Carl Smotricz 29 luglio 10 alle 16: 13Constructs una IOException con null come il suo messaggio di errore dettagli. IOException Costruisce un IOException con il messaggio di dettaglio specificato. Parametri: message - il messaggio dettaglio (che viene salvato per il successivo recupero con il metodo Throwable. getMessage ()) IOException Costruisce un IOException con il messaggio di dettaglio specificato e la causa. Si noti che il messaggio di dettagli associati a causa non è incorporato automaticamente in questo messaggio eccezioni dettaglio. Parametri: message - il messaggio dettaglio (che viene salvato per il successivo recupero con il metodo Throwable. getMessage ()) causa - La causa (che viene salvato per il successivo recupero con il metodo Throwable. getCause ()). (È consentito un valore nullo, e indica che la causa è inesistente o sconosciuta.) Dal: 1.6 IOException Costruisce un IOException con la causa specifica e un messaggio particolare di (.. Causenull nullo cause. toString ()) (che contiene in genere il di classe e relativo al messaggio di causa). Questo costruttore è utile per le eccezioni IO che sono poco più di wrapper per altri throwables. Parametri: causa - La causa (che viene salvato per il successivo recupero con il metodo Throwable. getCause ()). (Un valore nullo è consentito, e indica che la causa è inesistente o sconosciuta.) Dal: 1.6 Invia un bug o funzionalità per ulteriore riferimento API e documentazione per gli sviluppatori, vedere Java SE documentazione. Tale documentazione contiene, descrizioni più dettagliate degli sviluppatori mirati, con panoramiche concettuali, le definizioni dei termini, soluzioni alternative e esempi di codice di lavoro. Copyright x00a9 1993 2016, Oracle Andor i suoi affiliati. Tutti i diritti riservati. L'uso è soggetto ai termini della licenza. Vedere anche la politica di ridistribuzione della documentazione . Scripting in questa pagina tiene traccia del traffico pagina web, ma non cambia il contenuto in alcun modo.
No comments:
Post a Comment