2010-02-28 4 views

Répondre

0

Pouvez-vous fournir un exemple de code, où une exception RuntimeException est levée? Il est difficile de répondre correctement à votre question, si vous ne dites pas quel est votre problème exact.

Pour autant que je pouvais dire à votre de ce point, votre BootStrap.groovy devrait ressembler à ceci:

class BootStrap { 
def exceptionHandler 

def init = { servletContext -> 

    exceptionHandler.exceptionMappings = 
     [ 'NoSuchFlowExecutionException' :'/my/doIt', 
     'java.lang.Exception' : '/error', 
     'org.you.YourCustomException' : '/yourErrorController/yourErrorAction' ] 
} 

def destroy = { } 

De l'autre côté, dans votre code, vous devez attraper RuntimeExceptions de INTERVENUES et les transate dans votre exception personnalisée.

Et nous voici au point intéressant: Pourquoi voulez-vous faire cela? Ne serait-il pas beaucoup plus confortable de rediriger lorsque RuntimeExceptions sont lancées?

+0

Bien que j'ai un problème similaire dans le modèle J'ai une balise, cette balise déclenche une exception et en quelque sorte elle ne restitue pas l'action du contrôleur d'erreur (définie dans le mappage d'URL 500). Au lieu de cela, il affiche l'erreur et imprime la sortie du contrôleur d'erreur que j'ai créé. La redirection n'est pas correcte s'il y a une erreur sur le site que vous ne voulez pas que les robots d'exploration attrapent la redirection et ensuite 500. vous devriez juste leur donner le code 5xx correspondant je suppose. comment nettoyer le tampon de sortie et le remplacer tous par la sortie de l'action de contrôleur de gestion des erreurs? – Art79

+0

Je pense que pour ce problème, il vaudrait mieux s'assurer que votre taglib ne jette aucune exception - de plus, si c'est le cas, pourquoi voulez-vous présenter une erreur HTTP pleine page et pas un message d'erreur personnalisé rendu par le taglib? Pourriez-vous fournir un code taglib? – codeporn