Package be.hikage.aop

Source Code of be.hikage.aop.ExceptionHandler

package be.hikage.aop;

import be.hikage.exeption.DirectException;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.annotation.Aspect;

import javax.faces.application.NavigationHandler;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

/**
* @Autor : Hikage
*/
@Aspect
public class ExceptionHandler {
    private String errorOutcome = "exceptionPage";
    public void setErrorOutcome(String errorOutcome) {
        this.errorOutcome = errorOutcome;
    }

    @Pointcut("execution(* be.hikage.managed..* (..))")
    public void publicMethodsInManagedBean() {
    }

    @Around("be.hikage.aop.ExceptionHandler.publicMethodsInManagedBean() ")
    public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable {

        try {
            Object retVal = pjp.proceed();
            return retVal;
        } catch (Throwable throwable) {
            if (throwable instanceof DirectException) {
                throw throwable;
            } else {
                // Ajout de l'exception dans les attributs de la requête
                FacesContext context = FacesContext.getCurrentInstance();
                NavigationHandler navigation = context.getApplication().getNavigationHandler();
                context.getExternalContext().getRequestMap().put("exception", throwable);
                // Redirection vers la page des erreurs
                navigation.handleNavigation(context, "", errorOutcome);


            }
        }

        return null;
    }
}
TOP

Related Classes of be.hikage.aop.ExceptionHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.