Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di ilmila
    Registrato dal
    Apr 2005
    Messaggi
    68

    [JAVA]eccezioni

    Volevo sapere che differenza c'è e quali effeti collaterali comporta

    1 . catturare una eccezione seguita dalla rigenerazione
    2 . catturare una eccezione seguita da una propagazione di una nuova eccezione

    e che differenze ci sono, in quali casi è meglio usare una invece dell'altra(fase di debug..fase sviluppo..)

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Non vedo perchè ci debbano essere degli effetti collaterali.
    Ognuno gestisce la propria applicazione come vuole (si spera sempre in modo coerente).
    Per quanto riguarda le differenze, direi che dipende molto da cosa si sta progettando e da come si vuole gestire una situazione di errore (eccezione). Se sto sviluppando una applicazione a se stante, mi aspetto che ciascuna eccezione venga catturata e gestita dal codice in modo coerente. non mi preoccupo, quindi, né di rigenerazione né di propagazione (quet'ultima la posso vedere in termini di propagazione fra le varie classi della mia applicazione e fra i fari metodi di ciascuna classe).
    Discorso diverso lo faccio se sto progettando un modulo generale. In questa situazione mi devo porre delle domande:

    1) Voglio gestirle internamente le eccezioni?
    2) Voglio che sia l'utente (del modulo) a dover gestire l'eccezione?
    3) Voglio un mix delle due proposte precedenti?

    Se decido di gestire tutte le eccezioni, il problema è risolto: sorge un'eccezione di qualsiasi tipo, la gestisco in loco nel modulo e non faccio sapere niente all'utente finale (al massimo un messaggio su STDOUT)

    Se decido di non gestire affatto l'eccezione, ecco che applico una semplice propagazione: sorge un'eccezione, io me ne infischio perchè ho dichiarato nell'intestazione dei metodi "throws ...". Sarà l'utente che utilizza i try/catch.

    Se decido, invece, di utilizzare un mix fra le due, ecco che mi posso servire della rigenerazione e della propagazione contemporaneamente: posso, quindi, pensare di gestire una eccezione X internamente (non faccio sapere nulla all'utente), propagare senza occuparmi di niente una eccezione Y (sarà l'utente a gestirsela) oppure decidere di catturare una eccezione Z, di aggiungere qualche altra informazione di controllo e quindi (o eventualmente) generare una nuova eccezione, personalizzata.


    Con queste premesse (che possono essere anche confutate, specialmente se non ho inquadrato bene il tuo problema), direi che non ha tanto senso parlare di "fase di debug", "fase di sviluppo", ecc quando si parla di eccezioni, ma solo di "tipo di applicazione" che si sta sviluppando.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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 © 2024 vBulletin Solutions, Inc. All rights reserved.