dans Best practice, Design & Architecture, java, POO

Les exceptions dans l’api java

Les exceptions existent dans l’api java depuis la toute 1ere version.

C’est une classe permettant de décrire le mécanisme de gestion d’erreur dans une application java.

Elles décrivent le comportement que doit adopter un programme lorsque une situation exceptionnelle (prévue ou imprévue) se produit.

Les exceptions sont généralement classées en 2 types :

  • Checked exception or compile-time exception
  • Unchecked exception or runtime  exception

Nous verrons dans ce premier article la définition des checked exception.

Checked Exception

Les  checked exceptions sont des exceptions détectées au moment de la compilation et que le développeur est obligé de  traiter de 2 façons:

  • Soit en l’entourant d’un block try catch
  • Soit en  délégant la gestion a la méthode appelante via le mot clé throw

Les checked exception sont d’un point de vue fonctionnelle des exceptions prévues par le développeur dans le cycle de vie du programmes, elles représentent des situations particulières (cas d’erreur) anticipées durant l’exécution du programme.

D’un point de vue technique toute exception qui n’a pas pour parent dans sa hiérarchie  la classe RuntimeException  et hérite de la classe Exception est une checked exception.

Sauf la classe RuntimeException elle-même qui hérite de la classe Exception mais n’est pas considérée comme checked mais plutot uncheched.

Ex: Je souhaite lever une exception dans mon application de traitement de virement bancaire si le le solde d’un compte bancaire est inférieur à un certain seuil.

Un virement bancaire ne devrait pas être effectué si le solde du compte est inférieur à ce seuil. Le developpeur pourra donc souhaiter dans ce cas particulier lever une checkedExcepton


public void makeTransfer(double amount) throws ThresholdException

{

if (sold< threshold)

throw new ThresholdException(sold);

// make transfert here

}

Ainsi la méthode appelante makeWire devra obligatoirement gérer cette exception


public aMethod()

{

try

{

makeTransfer(amount);

} catch(ThresholdException){

// Handle exception here

}

}

Le fait de déclarer mon exception comme suit la rend automatiquement Checked.


public class ThresholException extends Exception{

}

Une exception unchecked quant à elle,  a pour parent la classe RuntimeException.

De nombreux débats sont ouverts sur la toile concernant l’utilité des checked exceptions beaucoup arguent en disant qu’elles ne servent pas à grand chose et sont plutôt vues contraigantes par le développeur.

Personnellement je pense qu’elles ont leur utilité mais à utiliser avec parcimonie.

la suite au prochaine article

Voilà pour cette 1ere partie sur les checked exceptions.

Pour aller plus loin :

http://www.onjava.com/pub/a/onjava/2003/11/19/exceptions.html?page=2

 

 

 

 

 

Ecrire un Commentaire

Commenter

Webmentions

  • usa fhizer kamagra

    kamagra online bez lékařského předpisu

    bez předpisu kamagra

  • ordering rifaximin american express canada

    get rifaximin generic is it safe

    order rifaximin price prescription

  • how to order xifaxan overnight no rx

    cheap xifaxan purchase in canada

    xifaxan no prescription online

  • buy avodart australia price

    online order avodart purchase online canada

    ordering avodart generic united states

  • cheapest buy staxyn generic lowest price

    how to buy staxyn buy japan

    buy staxyn cost on prescription

  • how to order itraconazole cost at costco

    discount itraconazole australia generic online

    buying itraconazole generic from the uk

  • discount fildena online no rx

    how to order fildena price prescription

    ordering fildena cost tablet

  • cod gabapentin overnight saturday no prescription

    buy gabapentin usa where to buy

    buy gabapentin new york city

  • how to buy dutasteride cheap online in the uk

    get dutasteride price in canada

    dutasteride online without prescription usa

  • order flexeril cyclobenzaprine cheap no prescription

    cheapest buy flexeril cyclobenzaprine usa where to buy

    discount flexeril cyclobenzaprine generic flexeril cyclobenzaprines

  • how to buy androxal generic side effect

    canadian meds androxal

    order androxal cheap drugs

  • purchase enclomiphene uk cheap purchase buy

    how to order enclomiphene price in us

    cheap enclomiphene buy online no prescription

  • kamagra rabais en ligne

    sans ordonnance kamagra pilule nist prescrire

    sans ordonnance kamagra pharmacie fournir medicaments

  • MyBlog

    itstitle

    excerptsa