SQLException
shadow
-
shadow -
shadow -
Salut à tous!
Je développe un site web avec JavaEE.
Je crée une Servlet qui me permet de créer un utilisateur et j'ai un petit soucis avec les exceptions.
voici le code de ma méthode:
Au niveau de la ligne
Comment pourrais-je le forcer à prendre le try/catch?
Merci
Je développe un site web avec JavaEE.
Je crée une Servlet qui me permet de créer un utilisateur et j'ai un petit soucis avec les exceptions.
voici le code de ma méthode:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
try{
JSONObject user = Users.addUser(request.getParameter("nom"), request.getParameter("prenom"), request.getParameter("password"));
}catch(SQLException sqle){
while(sqle != null){
String message = sqle.getMessage();
String sqlState = sqle.getSQLState();
int errorCode = sqle.getErrorCode();
System.out.println("Message = "+message);
System.out.println("SQLState = "+sqlState);
System.out.println("ErrorCode = "+errorCode);
sqle.printStackTrace();
sqle = sqle.getNextException();
}
}
}
Au niveau de la ligne
catch(SQLException sqle)le compilateur affiche une erreur "remove catch clause".
Comment pourrais-je le forcer à prendre le try/catch?
Merci
3 réponses
Pourquoi tu veux le forcer à prendre une exception qui ne peut pas être levée ?
Jamais tu ne pourras avoir de SQLException à ce niveau du code, donc ton try/catch ne sert à rien !
Jamais tu ne pourras avoir de SQLException à ce niveau du code, donc ton try/catch ne sert à rien !
Oui, mais les méthodes de l'API JDBC lèvent souvent des SQLException, c'est pour ça que je veux forcer le try/catch.
"l'API JDBC lèvent souvent des SQLException"
Oui mais pas toujours.
Si le compilateur t'indique une erreur "remove catch clause" ici c'est parce qu'il est sûr que tu ne rencontreras jamais de SQLException à ce niveau là du code (c'est à dire que ni Users.addUser, ni request.getParameter ne lève de SQLException).
Alors si tu veux absolument forcer le try/catch on peut le faire, mais c'est absurde.
Oui mais pas toujours.
Si le compilateur t'indique une erreur "remove catch clause" ici c'est parce qu'il est sûr que tu ne rencontreras jamais de SQLException à ce niveau là du code (c'est à dire que ni Users.addUser, ni request.getParameter ne lève de SQLException).
Alors si tu veux absolument forcer le try/catch on peut le faire, mais c'est absurde.
try
{
int n = 1+2;
System.out.println(n);
}
catch (Exception e)
{
if (e instanceof SQLException)
{
System.err.println("SQLException");
}
else throw e;
}