Gestion des exceptions dans JSP
Qu’est-ce qu’une exception dans JSP ?
Exceptions dans JSP se produit lorsqu'il y a une erreur dans le code, soit par le développeur, soit par une erreur interne du système. La gestion des exceptions dans JSP est la même que dans Java où nous gérons les exceptions à l’aide de blocs Try Catch. Contrairement à Java, il existe également des exceptions dans JSP lorsqu'il n'y a pas d'erreur dans le code.
Types d'exceptions dans JSP
Les exceptions dans JSP sont de trois types :
- Exception cochée
- Exception d'exécution
- Exception d'erreur
Exceptions vérifiées
Il s'agit généralement d'une erreur de l'utilisateur ou de problèmes qui ne sont pas détectés par le développeur et qui sont appelés exceptions vérifiées. Voici quelques exemples d'exceptions vérifiées :
- FileNotFoundException: Il s'agit d'une exception vérifiée (où il essaie de trouver un fichier lorsque le fichier est introuvable sur le disque).
- Exception d'E/S: Il s'agit également d'une exception vérifiée. Si une exception se produit lors de la lecture ou de l'écriture d'un fichier, l'exception IO est déclenchée.
- SQLException: Il s'agit également d'une exception vérifiée lorsque le fichier est connecté à SQL base de données, et il y a un problème avec la connectivité de la base de données SQL, alors SQLException est levée
Exceptions d'exécution
Les exceptions d'exécution sont celles qui auraient pu être évitées par le programmeur. Elles sont ignorées au moment de la compilation. Voici quelques exemples d'exceptions d'exécution :
- ArrayIndexOutOfBoundsExceptionArrayIndexOutOfBoundsException: Il s'agit d'une exception d'exécution lorsque la taille du tableau dépasse la éléments.
- ArithmétiqueException: Il s'agit également d'une exception d'exécution lorsqu'il existe des opérations mathématiques qui ne sont pas autorisées dans des conditions normales, par exemple, diviser un nombre par 0 donnera une exception.
- Exception NullPointer: Il s'agit également d'une exception d'exécution qui est déclenchée lorsqu'une variable ou un objet est nul lorsque nous essayons d'y accéder. Il s'agit d'une exception très courante.
Les erreurs:
Le problème survient en raison du contrôle de l'utilisateur ou du programmeur. Si la pile déborde, une erreur peut se produire. Voici quelques exemples d'erreur :
- Erreur: Cette erreur est une sous-classe de throwable qui indique des problèmes graves qu'une application ne peut pas détecter.
- Erreur d'instanciation: Cette erreur se produit lorsque nous essayons d'instancier un objet, et cela ne parvient pas à le faire.
- Erreur interne : Cette erreur se produit lorsqu'une erreur s'est produite à partir de la JVM, c'est-à-dire Java Machine virtuelle.
Exceptions d'erreur
Il s'agit d'une instance de la classe throwable, et elle est utilisée dans les pages d'erreur. Voici quelques méthodes de la classe throwable :
- Chaîne publique getMessage() – renvoie le message de l'exception.
- Public throwablegetCause() – renvoie la cause de l’exception
- PrintStackTrace() public– renvoie la trace de pile de l’exception.
Comment gérer les exceptions dans JSP
Voici un exemple de la façon de gérer les exceptions dans JSP :
Exception_example.jsp
<%@ page errorPage="guru_error.jsp" %> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Exception Guru JSP1</title> </head> <body> <% int num = 10; if (num == 10) { throw new RuntimeException("Error condition!!!"); } %> </body> </html>
Guru_error.jsp
<%@ page isErrorPage="true" %> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Exception Page</title> </head> <body> <p>Guru Exception has occurred</p> <% exception.printStackTrace(response.getWriter()); %> </body> </html>
Explication du code :
Exception_example.jsp
Ligne de code 1 : Ici, nous définissons la page d'erreur sur guru_error.jsp qui sera utilisée lorsque l'erreur sera redirigée.
Ligne de code 15 : nous prenons une variable num et la définissons sur 10 et vérifions une condition si num est 10, puis nous lançons une exception d'exécution avec le message comme condition d'erreur.
Guru_error.jsp
Ligne de code 1 : Ici, nous définissons isErrorPageattribute sur true.
Ligne de code 12 : L'exception a été déclenchée dans exception_example.jsp à l'aide d'un objet throw et cette exception sera affichée ici car l'attribut IsErrorPage est marqué comme vrai. En utilisant l'objet exception (il s'agit d'un objet qui permet au JSP d'accéder aux données d'exception), nous essayons d'imprimer la trace de pile de l'erreur qui s'est produite dans exception_example.jsp.
Lorsque vous exécutez le code ci-dessus, vous obtenez le résultat suivant :
Sortie :
L'exception a été levée à partir de exception_example.jsp à l'aide de l'objet throw de l'exception d'exécution et nous obtenons le code ci-dessus. De plus, guru_error.jsp est appelé à partir duquel l'exception Guru s'est produite à partir de ce fichier.
Résumé
- Des exceptions dans JSP se produisent lorsqu'il y a une erreur dans le code, soit du fait du développeur, soit d'une erreur interne du système.
- Les exceptions dans JSP sont de 3 types : les exceptions vérifiées, les exceptions d'exécution et les exceptions d'erreur.
- L'exception vérifiée est normalement une erreur de l'utilisateur ou les problèmes qui ne sont pas vus par le développeur sont appelés exceptions vérifiées.
- Les exceptions d'exécution sont celles qui auraient pu être évitées par le programmeur. Ils sont ignorés au moment de la compilation.
- L'exception d'erreur est une instance de la classe jetable et elle est utilisée dans les pages d'erreur.