[JAVA] Gestire apertura file con eventuale exception

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
roquentin3
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 413
Iscrizione: mercoledì 6 agosto 2014, 9:34

[JAVA] Gestire apertura file con eventuale exception

Messaggio da roquentin3 »

Ciao a tutti, devo gestire l'errore derivante dall'apertura di un file nel caso questo sia vuoto oppure non presenti i dati esatti :

Codice: Seleziona tutto

private String parseString(final BufferedReader reader, final String name1, final String name2, final boolean skipLast) throws DatiMeseInvalidiException {
        try {
            final String input = reader.readLine();

            if (input != null && !input.trim().isEmpty() && (input.startsWith(name1) || input.startsWith(name2))) {
                int index = input.indexOf(":");
                if (index < 0) {
                    throw new DatiMeseInvalidiException("Identificatore non presente");
                }
                if (skipLast) {
                    int indexV = input.indexOf(",");
                    return input.substring(index + 1, indexV);
                } else {
                    return input.substring(index + 1);
                }
            }
            throw new DatiMeseInvalidiException("Identificatore non presente");
        } catch (IOException ex) {
            Logger.getLogger(ApriFileMese.class.getName()).log(Level.SEVERE, null, ex);
        }
        return null;
    }
questo è il metodo contenuto nella classe per aprire il file che mi va ad analizzare il contenuto di un file .txt analizzandone le righe.

Se non trova i dati nell'ordine prestabilito o le righe sono vuote lancia una eccezione:

Codice: Seleziona tutto


public class DatiMeseInvalidiException extends Exception {

    public DatiMeseInvalidiException(String message) {
        super(message);
        JOptionPane.showMessageDialog(null,
                "It's impossible to get the information.",
                "Warning",
                JOptionPane.WARNING_MESSAGE);
       
    }
}

Il problema è che una volta visualizzato il messaggio tramite JOptionPane, mi da errore, ovviamente

Codice: Seleziona tutto

....
SEVERE: null
pv.DatiMeseInvalidiException: Identificatore non presente
...
ed io vorrei che una volta clicclato su "Ok" nel JOptionPane del Warning Message, si bloccasse l'esecuzione senza segnalazione di errore.

Come posso risolvere ?

Grazie
Avatar utente
orpheus142
Prode Principiante
Messaggi: 22
Iscrizione: domenica 7 novembre 2010, 10:27
Desktop: Mate
Distribuzione: Ubuntu
Sesso: Maschile
Località: Trento
Contatti:

Re: [JAVA] Gestire apertura file con eventuale exception

Messaggio da orpheus142 »

Non è il modo migliore di procedere

io ti consiglio di togliere da DatiMeseInvalidiException la chiamata a JOptionPane.showMessageDialog

andare nel metodo che invoca la funzione parseString, racchiudere parseString in un blocco try catch e gestire li l'eccezione DatiMeseInvalidException mettendo la chiamata a JOptionPane.showMessageDialog

questo dovrebbe risolverti il problema
roquentin3
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 413
Iscrizione: mercoledì 6 agosto 2014, 9:34

Re: [JAVA] Gestire apertura file con eventuale exception

Messaggio da roquentin3 »

Ciao, scusami non ho capito molto bene.
Potresti, gentilmente farmi un esempio ?

Grazie
Avatar utente
orpheus142
Prode Principiante
Messaggi: 22
Iscrizione: domenica 7 novembre 2010, 10:27
Desktop: Mate
Distribuzione: Ubuntu
Sesso: Maschile
Località: Trento
Contatti:

Re: [JAVA] Gestire apertura file con eventuale exception

Messaggio da orpheus142 »

Ci provo

allora

la tua eccezione dovrebbe diventare così

Codice: Seleziona tutto

public class DatiMeseInvalidiException extends Exception {

    public DatiMeseInvalidiException(String message) {
        super(message);  
    }
}
poi racchiudi la chiamata al tuo metodo parseString in un blocco try catch e gestisci li l'eccezione

Codice: Seleziona tutto

try {
   ....
  .....
   String pippo = parseString(......);
   .....
   .....
} catch(DatiMeseInvalidiException e) {
      JOptionPane.showMessageDialog(null,
                "It's impossible to get the information.",
                "Warning",
                JOptionPane.WARNING_MESSAGE);
}
spero così sia più chiaro
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 21 ospiti