| ... | @@ -36,4 +36,46 @@ Le mécanisme est illustré ci-dessous : |
... | @@ -36,4 +36,46 @@ Le mécanisme est illustré ci-dessous : |
|
|
|
|
|
|
|
:book: Le type de l'exception, le nom qui est donné à la classe, permet de caractériser l'erreur (`NullPointerException` pour l'utilisation d'une référence nulle, ou `ArrayIndexOutOfBoundsException` pour un débordement de tableau par exemple).
|
|
:book: Le type de l'exception, le nom qui est donné à la classe, permet de caractériser l'erreur (`NullPointerException` pour l'utilisation d'une référence nulle, ou `ArrayIndexOutOfBoundsException` pour un débordement de tableau par exemple).
|
|
|
|
|
|
|
|
:book: Le conceptuer d'une classe peut définir de nouveaux types d'exception pour caractériser les erreurs associées à la logique de l'application (on essaie d'empiler dans une pile pleine par exemple) |
|
:book: Le concepteur d'une classe peut définir de nouveaux types d'exception pour caractériser les erreurs associées à la logique de l'application (on essaie d'empiler dans une pile pleine par exemple)
|
|
\ No newline at end of file |
|
|
|
|
|
# Définition d'exceptions
|
|
|
|
|
|
|
|
:rewind: La première version de la classe [`StackOfNonNegativeIntegers`](https://gitlab.iut-valence.fr/INFO-BUT/S2/info-but-r2-01/stacks-basics-complete-version) gérait les erreurs en détournant des codes de retour (entiers) des opérations `push`, `pop` et `view` :
|
|
|
|
|
|
|
|
```java
|
|
|
|
/**
|
|
|
|
* Status code to notify an unexpected full stack (value is -1)
|
|
|
|
*/
|
|
|
|
public static final int FULL_STACK = -1;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Status code to notify an unexpected negative element (value is -2)
|
|
|
|
*/
|
|
|
|
public static final int NEGATIVE_ELEMENT = -2;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Status code to notify an unexpected empty stack (value is -3)
|
|
|
|
*/
|
|
|
|
public static final int EMPTY_STACK = -3;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Status code to notify a success (value is 0)
|
|
|
|
*/
|
|
|
|
public static final int SUCCESS = 0;
|
|
|
|
```
|
|
|
|
|
|
|
|
Ces constantes peuvent être remplacées par des exceptions (définies dans des classes à part):
|
|
|
|
|
|
|
|
```java
|
|
|
|
public class FullStackException extends Exception {}
|
|
|
|
```
|
|
|
|
|
|
|
|
```java
|
|
|
|
public class EmptyStackException extends Exception {}
|
|
|
|
```
|
|
|
|
|
|
|
|
```java
|
|
|
|
public class NegativeElementException extends Exception {}
|
|
|
|
```
|
|
|
|
|
|
|
|
|