Mostra notizie nelle discussioni
  • Avatar
    ☺
    Scritto da
    gengiva
    Utente privileggiato
    il 2011-12-09 12:41:00.0 alle 2011-12-09 12:41:00.0
    Trollate totali: 9100
    domanda stupida per i javari
    riguardo le eccezioni

    non mi ero mai posto il problema perché usando eclipse tutte le vote che usavo metodi che necessitano un controllo, l'editor me lo diceva e io facevo "surround with try-catch" e morta li.

    ora sto facendo un progetto universitario che mi chiede di definire delle eccezioni controllate per alcuni metodi. ho notato che dopo aver definito un'eccezione controllata, quando vado a usare il metodo che mi serve, l'esecuzione del programma viene terminata dopo aver stampato il messaggio d'errore(sto facendo delle prove apposta per fargli trovare delle anomalie) se nell'intestazione della classe dove invoco il metodo uso throw, invece va tutto liscio se intercetto con try-catch (naturalmente prima mi stampa il messaggio d'errore).
    per me non è un problema visto che in un modo o nell'altro il programma funziona, ma è normale questa cosa e sono io il pirla e sbaglio qualcosa quando throwo?

    inb4:

    > sei un cretino

    > meno male che hai passato l'esame

    > capra capra capra!!!

    Cercatelo con Google, ritardato! ©
    • Avatar
      Scritto da
      Non Autenticato
      il 2011-12-09 12:49:00.0 alle 2011-12-09 12:49:00.0
      Re: domanda stupida per i javari

      - Scritto da: gengiva
      > riguardo le eccezioni
      >
      > non mi ero mai posto il problema perché usando
      > eclipse tutte le vote che usavo metodi che
      > necessitano un controllo, l'editor me lo diceva e
      > io facevo "surround with try-catch" e morta
      > li.
      >
      > ora sto facendo un progetto universitario che mi
      > chiede di definire delle eccezioni controllate
      > per alcuni metodi. ho notato che dopo aver
      > definito un'eccezione controllata, quando vado a
      > usare il metodo che mi serve, l'esecuzione del
      > programma viene terminata dopo aver stampato il
      > messaggio d'errore(sto facendo delle prove
      > apposta per fargli trovare delle anomalie) se
      > nell'intestazione della classe dove invoco il
      > metodo uso throws, invece va tutto liscio se
      > intercetto con try-catch (naturalmente prima mi
      > stampa il messaggio
      > d'errore).
      > per me non è un problema visto che in un modo o
      > nell'altro il programma funziona, ma è normale
      > questa cosa e sono io il pirla e sbaglio qualcosa
      > quando
      > throwo?
      >
      > inb4:
      >
      > > sei un cretino
      >
      > > meno male che hai passato l'esame
      >
      > > capra capra capra!!!

      se non gestisci l'eccezione mi pare chiaro che il programma termini, con try catch hai sotto un blocco di gestione dell'eccezione, con throws chi la gestisce?
      • Avatar
        ☺
        Scritto da
        gengiva
        Utente privileggiato
        il 2011-12-09 13:05:00.0 alle 2011-12-09 13:05:00.0
        Trollate totali: 9100
        Re: domanda stupida per i javari
        - Scritto da:
        >
        > - Scritto da: gengiva
        > > riguardo le eccezioni
        > >
        > > non mi ero mai posto il problema perché usando
        > > eclipse tutte le vote che usavo metodi che
        > > necessitano un controllo, l'editor me lo diceva
        > e
        > > io facevo "surround with try-catch" e morta
        > > li.
        > >
        > > ora sto facendo un progetto universitario che mi
        > > chiede di definire delle eccezioni controllate
        > > per alcuni metodi. ho notato che dopo aver
        > > definito un'eccezione controllata, quando vado a
        > > usare il metodo che mi serve, l'esecuzione del
        > > programma viene terminata dopo aver stampato il
        > > messaggio d'errore(sto facendo delle prove
        > > apposta per fargli trovare delle anomalie) se
        > > nell'intestazione della classe dove invoco il
        > > metodo uso throws, invece va tutto liscio se
        > > intercetto con try-catch (naturalmente prima mi
        > > stampa il messaggio
        > > d'errore).
        > > per me non è un problema visto che in un modo o
        > > nell'altro il programma funziona, ma è normale
        > > questa cosa e sono io il pirla e sbaglio
        > qualcosa
        > > quando
        > > throwo?
        > >
        > > inb4:
        > >
        > > > sei un cretino
        > >
        > > > meno male che hai passato l'esame
        > >
        > > > capra capra capra!!!
        >
        > se non gestisci l'eccezione mi pare chiaro che il
        > programma termini, con try catch hai sotto un
        > blocco di gestione dell'eccezione, con throws chi
        > la
        > gestisce?

        pensavo che sollevandola nel corpo del metodo

        if(condizione){throw new GengivaEccezione(stringa);}

        e poi esplicitando throws nell'intestazione della classe chiamante, se la sarebbe andata a cercare.. ops A bocca storta
        Cercatelo con Google, ritardato! ©
    • Avatar
      ☺
      Scritto da
      il 2011-12-09 13:01:00.0 alle 2011-12-09 13:01:00.0
      Trollate totali: 6532
      Re: domanda stupida per i javari

      - Scritto da: gengiva
      > riguardo le eccezioni
      >
      > non mi ero mai posto il problema perché usando
      > eclipse tutte le volte che usavo metodi che
      > necessitano un controllo, l'editor me lo diceva e
      > io facevo "surround with try-catch" e morta
      > li.
      >
      > ora sto facendo un progetto universitario che mi
      > chiede di definire delle eccezioni controllate
      > per alcuni metodi. ho notato che dopo aver
      > definito un'eccezione controllata, quando vado a
      > usare il metodo che mi serve, l'esecuzione del
      > programma viene terminata dopo aver stampato il
      > messaggio d'errore(sto facendo delle prove
      > apposta per fargli trovare delle anomalie) se
      > nell'intestazione della classe dove invoco il
      > metodo uso throws, invece va tutto liscio se
      > intercetto con try-catch (naturalmente prima mi
      > stampa il messaggio
      > d'errore).
      > per me non è un problema visto che in un modo o
      > nell'altro il programma funziona, ma è normale
      > questa cosa e sono io il pirla e sbaglio qualcosa
      > quando
      > throwo?
      >
      > inb4:
      >
      > > sei un cretino
      >
      > > meno male che hai passato l'esame
      >
      > > capra capra capra!!!

      Credo di non aver capito quello che dici.

      Se fai "try-catch" lo fai per gestire un'eccezione. Gestire un'eccezione significa appunto eseguire delle azioni che avvengono solo in caso nel codice in oggetto ci sia un'eccezione. Serve ad assicurarti che determinate azioni siano svolte in caso d'errore (dare un messaggio all'utente, chiudere delle risorse [file aperti per esempio], eseguire altre azioni alternative, ecc) e nella maggior parte dei casi impedire al tuo programma di crashiare miseramente. Se un'eccezione non la gestisci questa risalirà nello stack delle chiamate finché non viene gestita... e se nessuno la gestisce il programma termina.

      Quando fai un throw stai creando tu un'eccezione che qualcuno dovrà gestire in qualche modo (in genere fuori dal metodo che crea l'eccezione). Se ad un metodo dici che fa il throws di una determinata eccezione gli stai dicendo che se al suo interno si verifica quell'eccezione di passarla semplicemente al pezzo di codice esterno al metodo che l'ha chiamato... ma qualcuno "lì fuori" dovrà gestirla, tu stai solo facendo il "ponzio pilato" lavandotene le mani (cosa che fai o per avere un punto centrale dove gestire diverse eccezioni per qualche ragione, o perché è il modo scelto da te per segnalare a chi ha chiamato il tuo metodo che qualcosa è andato storto).

      Se quell'eccezione capita il tuo metodo si limiterà a terminare passando l'eccezione al pezzo di codice che l'ha invocato, e se nemmeno quello la gestisce questa risalirà nello stack delle chiamate fino a raggiungere il "main" del programma e a quel punto, se nemmeno lì è gestita, l'eccezione terminerà il programma con un messaggio d'errore.
      • Avatar
        ☺
        Scritto da
        gengiva
        Utente privileggiato
        il 2011-12-09 13:08:00.0 alle 2011-12-09 13:08:00.0
        Trollate totali: 9100
        Re: domanda stupida per i javari

        - Scritto da: Daisuke Niwa
        >
        > - Scritto da: gengiva
        > > riguardo le eccezioni
        > >
        > > non mi ero mai posto il problema perché usando
        > > eclipse tutte le volte che usavo metodi che
        > > necessitano un controllo, l'editor me lo diceva
        > e
        > > io facevo "surround with try-catch" e morta
        > > li.
        > >
        > > ora sto facendo un progetto universitario che mi
        > > chiede di definire delle eccezioni controllate
        > > per alcuni metodi. ho notato che dopo aver
        > > definito un'eccezione controllata, quando vado a
        > > usare il metodo che mi serve, l'esecuzione del
        > > programma viene terminata dopo aver stampato il
        > > messaggio d'errore(sto facendo delle prove
        > > apposta per fargli trovare delle anomalie) se
        > > nell'intestazione della classe dove invoco il
        > > metodo uso throws, invece va tutto liscio se
        > > intercetto con try-catch (naturalmente prima mi
        > > stampa il messaggio
        > > d'errore).
        > > per me non è un problema visto che in un modo o
        > > nell'altro il programma funziona, ma è normale
        > > questa cosa e sono io il pirla e sbaglio
        > qualcosa
        > > quando
        > > throwo?
        > >
        > > inb4:
        > >
        > > > sei un cretino
        > >
        > > > meno male che hai passato l'esame
        > >
        > > > capra capra capra!!!
        >
        > Credo di non aver capito quello che dici.
        >
        > Se fai "try-catch" lo fai per gestire
        > un'eccezione. Gestire un'eccezione significa
        > appunto eseguire delle azioni che avvengono solo
        > in caso nel codice in oggetto ci sia
        > un'eccezione. Serve ad assicurarti che
        > determinate azioni siano svolte in caso d'errore
        > (dare un messaggio all'utente, chiudere delle
        > risorse [file aperti per esempio], eseguire altre
        > azioni alternative, ecc) e nella maggior parte
        > dei casi impedire al tuo programma di crashiare
        > miseramente. Se un'eccezione non la gestisci
        > questa risalirà nello stack delle chiamate finché
        > non viene gestita... e se nessuno la gestisce il
        > programma
        > termina.
        >
        > Quando fai un throw stai creando tu un'eccezione
        > che qualcuno dovrà gestire in qualche modo (in
        > genere fuori dal metodo che crea l'eccezione). Se
        > ad un metodo dici che fa il throws di una
        > determinata eccezione gli stai dicendo che se al
        > suo interno si verifica quell'eccezione di
        > passarla semplicemente al pezzo di codice esterno
        > al metodo che l'ha chiamato... ma qualcuno "lì
        > fuori" dovrà gestirla, tu stai solo facendo il
        > "ponzio pilato" lavandotene le mani (cosa che fai
        > o per avere un punto centrale dove gestire
        > diverse eccezioni per qualche ragione, o perché è
        > il modo scelto da te per segnalare a chi ha
        > chiamato il tuo metodo che qualcosa è andato
        > storto).
        >
        > Se quell'eccezione capita il tuo metodo si
        > limiterà a terminare passando l'eccezione al
        > pezzo di codice che l'ha invocato, e se nemmeno
        > quello la gestisce questa risalirà nello stack
        > delle chiamate fino a raggiungere il "main" del
        > programma e a quel punto, se nemmeno lì è
        > gestita, l'eccezione terminerà il programma con
        > un messaggio
        > d'errore.

        ho capito Imbarazzato Imbarazzato
        Cercatelo con Google, ritardato! ©
    • Avatar
      ☺
      Scritto da
      il 2011-12-09 13:17:00.0 alle 2011-12-09 13:17:00.0
      Trollate totali: 42885
      Re: domanda stupida per i javari
      - Scritto da: gengiva

      Non ho capito bene cosa vuoi fare, provo a spiegare in Giambese, se capisci riceverai la cittadinanza onoraria svizzera e entro 14 giorni dei tecnici specializzati rimuoveranno il bidet da casa tua.

      Se un metodo dichiara "throw", significa che puo' generare quell'eccezione.
      Per esempio invocando questo metodo ci provi con un utente del FdT: Ritorna "true" se ce la fai, "false" se non ce la fai e FdTException se capita qualcosa di imprevisto
      public boolean provaciCon(String utenteDelFdT) throws FdTException {
      ...
      }
      


      Ora, tu dal tuo programma ci provi con Dada e ti becchi un "true", ci provi con Ordine Reich e ti becchi un "false", ci provi con te stesso e ... FdTException !

      La domanda e': Come gestire questa exception ?
      Puoi ignorarla e proseguire come se niente fosse:
      try {
        provaciCon("gengiva");
      catch (FdTException e) {
        // fa nulla, non amo l'onanismo
      }
      

      Puoi gestirla in qualche modo, stampando la stacktrace e terminando il programma per esempio:
      try {
        provaciCon("gengiva");
      catch (FdTException e) {
        // non mi voglio bene <IMG SRC="images/emo/11.gif" border="0" height="20" alt="In lacrime" title="In lacrime"> !!
        e.printStackTrace();
        System.exit(0)
      }
      


      Oppure puoi fare in modo che l'eccezione "risalga" la gerarchia di chi ha chiamato e che prima o poi qualcuno se ne occupi. In questo caso tutti gli appartenenti alla gerarchia devono dichiarare che gettano un'exception di tipo FdTException o superiore (java.lang.Exception, ...)

      public void faiQualcosa() throws FdTException {
        ...
        provaciCon("gengiva");
        ...
      }
      


      Mi scappa la pipi', non controllo che cosa ho scritto e schisio su "Invia" Anonimo
      `"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo
<softv>

Pagina generata in 135 millisecondi

Utenti attivi: 7 nell'ultimo minuto, 21 negli ultimi cinque minuti, 43 negli ultimi 15 minuti