Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Gestione eccezioni multiple

    Ciao a tutti raga...

    Ho creato un prog e ora devo gestirci tutte le eccezioni, le ho lasciate alla fine per non fare confusione... Pensavo di creare una classe eccezioni che estende Exception e creare varie eccezioni all'interno di quella classe tipo: casellavuota, casellaoccupata, fuorilimiti, etc...
    e poi nel mio prog try{...}catch(casellavuota e){...}catch(fuorilimiti e){...}etc..... e sollevare così varie eccezioni in base a cio che succede...

    Ora non è che sia troppo ferrato sull'argomento e non sono neanche sicuro che si possa fare cio che ho descritto....

    Voi che dite???

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Gestione eccezioni multiple

    Originariamente inviato da Bontakun
    Pensavo di creare una classe eccezioni che estende Exception e creare varie eccezioni all'interno di quella classe tipo: casellavuota, casellaoccupata, fuorilimiti, etc...
    e poi nel mio prog try{...}catch(casellavuota e){...}catch(fuorilimiti e){...}etc..... e sollevare così varie eccezioni in base a cio che succede...

    Ora non è che sia troppo ferrato sull'argomento e non sono neanche sicuro che si possa fare cio che ho descritto....
    Tecnicamente certo che si può fare. Ed è chiaro che le tue eccezioni le devi derivare o direttamente da una classe di eccezione del framework o da un'altra tua eccezione "base" che a sua volta estende una eccezione del framework.

    Poi che abbia senso o no (e se appropriato o meno) per quello che stai facendo .... beh, bisognerebbe vedere la architettura della tua applicazione.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Non è che potresti postare un codice esempio da usare cm riferimento generale????

    Sono arrugginito di bestia con le eccezzioni...

    Ho la teoria ma a pratica sto a zero....

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Originariamente inviato da Bontakun
    Non è che potresti postare un codice esempio da usare cm riferimento generale????

    Sono arrugginito di bestia con le eccezzioni...

    Ho la teoria ma a pratica sto a zero....
    Scusa per le eccezioni devi fare 2 cose:

    1. definire la tua eccezione (estende Exception e ovviamente devi stare attento ai costruttori)
    2. avere i metodi che lanciano la tua eccezione
    3. catturare l'eccezione/riportarla all'esterno secondo le esigenze.

    Il web è pieno di esempi di questo tipo
    RTFM Read That F*** Manual!!!

  5. #5
    Si ok.... Però se voglio creare una classe "exept" e metterci le mie eccezioni, essendo costruttori devo x forza chiamarle exept( , , , )... Se voglio più eccezz chiamate diversamente devo creare più classi, una per ogni tipo di eccezione... o sbaglio???? Sono confuso nn so se si nota

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Bontakun
    Però se voglio creare una classe "exept" e metterci le mie eccezioni, essendo costruttori devo x forza chiamarle exept( , , , )... Se voglio più eccezz chiamate diversamente devo creare più classi, una per ogni tipo di eccezione... o sbaglio????
    1 eccezione = 1 classe. Non ha senso dire "una classe "exept" e metterci le mie eccezioni".
    E la classe della eccezione può avere ovviamente più costruttori .... ma non vuol dire che hai definito più eccezioni!
    Quali costruttori fornire dipende da cosa serve per costruire l'oggetto della eccezione e dalla flessibilità che vuoi offrire.

    Prendi la documentazione javadoc del framework (almeno Java 1.4) e guarda una qualunque delle eccezioni più vicine a Throwable e non troppo "specializzate", es. RuntimeException. I costruttori offerti sono 4:

    RuntimeException()
    RuntimeException(String message)
    RuntimeException(String message, Throwable cause)
    RuntimeException(Throwable cause)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Allora.... Per ora ho creato delle classi così:

    Classe eccezione: public class eccezione extends Exeption{
    eccezione(String messaggio){
    super(messaggio);
    }
    }

    Classe dei metodi: public class metodi{
    metod1{...}
    metod2{...}
    metod3 throws eccezione
    {if(x==10) throw new eccezione("Scrivo questo");
    if(x==20) throw new eccezione("Scrivo questo 2");
    ...}

    Classe main: public class main{
    public static void main(String[]args){
    metod1;
    ...
    metod2;
    ...
    try{
    metod3;
    }catch(eccezione e){}


    Ora volevo chiedere: eseguo il main e in metod3 se si verifica l'eccezione metod3 si blocca e torno al main... Fin qui ok... Però non mi stampa a schermo "Scrivo questo" o "scrivo questo 2" o altro in altri casi... Dove ho sbagliato????

    Grazie


    AGG: credo di aver risolto apponendo e.printStackTrace() al catch...

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Bontakun
    e.printStackTrace()
    O se non vuoi l'intero stack trace anche solo

    System.out.println(e);
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Azz grazie..... così è decisamente più bello da vedere....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.