Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1
    mame06
    Invité(e)

    Par défaut Gestion de toutes les exceptions

    bonjour tout le monde.
    voilà mon problème : je développe une application avec jee, jsf 1.2 richfaces 3 oracle 10g et POI pour la génération de fichier excel. je veux créer une seule page (générique) avec un seul message pour toutes les exception (SQL, inpustream, jsf etc) elle sera appelée dés qu'il y'a une exception quelle quel soit. voilà ce que j'ai mis dans le web.xml
    Code :
    1
    2
    3
    4
    5
     
    <error-page>
    	<exception-type>java.lang.Exception</exception-type>
    	<location>/erreur.jsf</location>
    </error-page>
    maintenant je voudrais savoir quoi mettre dans mes managed beans après try (catch, finally) ou je ne mets rien. parceque il m'affiche tjrs etat http 500 - dans l'une de mes pages( qui contient une erreur pour tester) au lieu d'afficher la page erreur. jsf. quelqu'un a t-il une idée j'ai déjà fait un tour sur le net mai j'ai pas bien compris le principe. merci d'avance.

  2. #2
    mame06
    Invité(e)

    Par défaut

    personne n'a une idée de comment faire?????

  3. #3
    Membre expérimenté
    Homme Profil pro
    Ed Nat
    Inscrit en
    janvier 2013
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ed Nat
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : janvier 2013
    Messages : 323
    Points : 556
    Points
    556

    Par défaut

    Bonjour,
    pour mettre en oeuvre la déclaration error-page de web.xml avec exception-type :
    <error-page>
    <exception-type>java.lang.Exception</exception-type>
    <location>/erreur.jsf</location>
    </error-page>
    il faut créer une classe Wrapper (encapsulant) de RuntimeException :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    public class WrapException extends RuntimeException {
    	/**
    	 * 
    	 */
    	private static final long serialVersionUID = 1L;
    	Throwable throwable;
     
    	private WrapException(Throwable t) {
    		this.throwable = t;
    	}
     
    	public static RuntimeException wrap(Throwable t) {
    		if (t instanceof RuntimeException)
    			return (RuntimeException) t;
    		return new WrapException(t);
    	}
     
    	public Throwable getCause() {
    		return this.throwable;
    	}
     
    	public void printStackTrace() {
    		this.throwable.printStackTrace();
    	}
    }

    Et ensuite, dans tes try/catch, tu wrap l'exception comme dans cet exemple générant une erreur :
    Code :
    1
    2
    3
    4
    5
    6
     
    try{
    	float b=1/0;
    }catch(Exception e){
    	throw WrapException.wrap(e);
    }
    Ta page error.jsp affichant les erreurs (pas terrible celle là):
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <%@ page isErrorPage="true" import="java.io.PrintWriter" language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Page erreur</title>
    </head>
    <body>
    <%
    exception.printStackTrace(new PrintWriter(out));
    %>
    </body>
    </html>

  4. #4
    mame06
    Invité(e)

    Par défaut

    ok merci je vais voir ça

  5. #5
    mame06
    Invité(e)

    Par défaut

    Pour les exceptions 404, 500 ça marche bien mais pour les autres la page d'erreur ne s'affiche pas et il affiche toute l'erreur.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ed Nat
    Inscrit en
    janvier 2013
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ed Nat
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : janvier 2013
    Messages : 323
    Points : 556
    Points
    556

    Par défaut

    Bonjour,
    peux tu montrer un exemple de trace d'erreur non gérée, ainsi que le code qui l'a provoquée.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •