Bonjour,
Je vous expose mon probleme, j'essaye tant bien que mal de catcher une erreure avec la valeur de ses membres depuis un controller.
Tout d'abord j'ai un controller qui lance une exception
La classe de l'exception (rien de bien folichon je test pour l'instant)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 @RequestMapping(value = "/test/test_lancer_exception_2", method = RequestMethod.GET) public String lancerErreur2(HttpSession pSession, Model pModel) throws TestException { TestException vEx = new TestException("Aie ... Aie ...transverse"); throw vEx; }
Donc l'exception contient dans mCustomMsg, aie .... aie .....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
27
28
29
30 public class TestException extends RuntimeException { /** * */ private static final long serialVersionUID = -63247236951560850L; private String mCustomMsg; public TestException() { } public TestException(TestException pEx) { mCustomMsg = pEx.getCustomMsg(); } public TestException(String pCustomMsg) { this.mCustomMsg = pCustomMsg; } public String getCustomMsg() { return mCustomMsg; } public void setCustomMsg(String pCustomMsg) { mCustomMsg = pCustomMsg; } }
Ensuite je la catch par la configuration suivante dans le web.xml
En enfin le controller qui est appelé pour l'exception
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <error-page> <exception-type>monPath.TestException</exception-type> <location>/test/catch_exception_2</location> </error-page>
Le problème est que dans ce controller de reception la valeur de mCusomMsg est NULL!!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 @RequestMapping(value = "/test/catch_exception_2", method = RequestMethod.GET) public String erreur_2(com.erdf.prac.transverse.test.exception.TestException pEx, HttpSession pSession, Model pModel) { pModel.addAttribute("message", "Attention Transverse "); pModel.addAttribute("modelException", pEx); return ("/test/test_exception"); }
Comment mapper l'ancienne exception dans le nouveau controller?
Pourquoi ce n'est pas fait automatiquement
Partager