IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Traitement exception non prit en compte


Sujet :

Java

  1. #1
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Par défaut Traitement exception non prit en compte
    Bonjour, j'ai créé des traitements pour gérer mes exception s'il y en a lors de l'exécution de mon application mais il s'avère qu'il y en a une qui n'est pas prise en compte apparemment.

    C'est pour le mauvais format, voici mon code
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    public void modifProduit(String nom, float prix, String categorie)
    {
    	String nomM = nom;
    	String categorieE = categorie;
    	float prixX = prix;
    	final String driver ="com.mysql.jdbc.Driver";
    	String sql = "UPDATE " + categorieE + " SET `nom` =  '" + nomM + "', `prix` = '" + prixX + "' WHERE `nom` = '" + this.nomProduit + "';";
    	final String url = "jdbc:mysql://127.0.0.1/***";
    	final String user = "***";
    	final String passwd = "***";
    	Connection con = null;
    	Statement state = null;
    	try
    	{
    		// Chargement du driver
    		Class.forName(driver).newInstance();
    		// Connexion � la BDD
    		con = DriverManager.getConnection(url, user, passwd);
    		// JOptionPane.showMessageDialog(null, "Connexion �tablie!!");		
    		// Creation de l'objet Statement
    		state = con.createStatement();
    		// Execution de la requete
    		state.executeUpdate(sql);			
    		JOptionPane.showMessageDialog(null, "Produit modifié avec succès");
     
    		// Fermeture des objets utilis�s
    		state.close();
    		}
    		catch(ClassNotFoundException e)
    		{
    			System.err.println("Class non trouvée " + driver);
    		}
    		catch (SQLException e)
    		{
    			System.err.println("SQL erreur : " + sql + " " + e.getMessage());
    		}
    		catch (NumberFormatException e) 
    		{
    			JOptionPane.showMessageDialog(null, "Veuillez vérifier le format des données saisies.");
    		}
    		catch (Exception e) 
    		{
    			e.printStackTrace();
    		}
    		finally
    		{
    			try
    			{
    				if (con != null)
    				{
    					con.close();
    				}
    			}
    			catch (Exception e)
    			{
    				System.err.println(e);
    			}
    		}
    Ma fonction ci-dessus sert à modifier le prix de l'un des produits de ma BDD.

    Quand je tape par exemple "3,5" au lieu de "3.5", j'ai donc une exception de type NumberFormatExceptionet je devrais avoir un fenêtre qui s'affiche avec un message "Veuillez vérifier le format des données saisies" mais ce n'est pas le cas, j'ai une erreur dans mon console de type NumberFormatException. :/

    Comment ça se fait qu'elle n'est pas traitée?
    - Mes articles
    - Consultant technique Salesforce
    - Salesforce Certified Administrator
    - Salesforce Certified Platform App Builder
    - Salesforce Certified Developper I
    - Salesforce Certified Sales Cloud
    - Salesforce Certified Service Cloud

  2. #2
    Membre chevronné
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Par défaut
    Bonjour,

    L'exception ne se déclencherait pas en amont plutôt ?
    Je veux dire avant l'appel à la méthode modifProduit ?

    Quel est le code d'appel ?

  3. #3
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Par défaut
    L'erreur provient au moment où je récupère les valeurs de mes champs, c'est à dire juste au dessus de l'appel à ma méthode modifProduit.

    Je vais essayer en récupérant un string et en l'envoyant à ma méthode et seulement dans la méthode, je convertirais mon string en float et peut-être que mon exception sera traitée dans ce cas?
    - Mes articles
    - Consultant technique Salesforce
    - Salesforce Certified Administrator
    - Salesforce Certified Platform App Builder
    - Salesforce Certified Developper I
    - Salesforce Certified Sales Cloud
    - Salesforce Certified Service Cloud

  4. #4
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Par défaut
    J'ai essayé en envoyant le prix sous forme de String dans ma méthode et qu'en suite je le convertis en float avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Float.parseFloat(prix)
    Mais ça ne fonctionne pas, ça ne traite pas mon exception :/
    - Mes articles
    - Consultant technique Salesforce
    - Salesforce Certified Administrator
    - Salesforce Certified Platform App Builder
    - Salesforce Certified Developper I
    - Salesforce Certified Sales Cloud
    - Salesforce Certified Service Cloud

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Par défaut
    Ta méthode modifProduit(...) n'effectue pas d'opération qui puissent lancer de NumberFormatException puisque en entrée de celle-ci tu as déja un float converti.

    Retire la clause catch NumberFormatException de cette méthode et place la plutôt lors de la tentative de conversion de la chaine en float.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    try
    {
    float  convertedFloat = Float.parseFloat(prix)
    }
    catch (NumberFormatException e)
    {
    ...//traitement d'erreur
    }

  6. #6
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Par défaut
    J'ai mis la convertion dans le try{ } et ça marche d'un coup, merci, je mets en résolu.
    - Mes articles
    - Consultant technique Salesforce
    - Salesforce Certified Administrator
    - Salesforce Certified Platform App Builder
    - Salesforce Certified Developper I
    - Salesforce Certified Sales Cloud
    - Salesforce Certified Service Cloud

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Accent non prit en compte.
    Par @po©alypse dans le forum PHP & Base de données
    Réponses: 22
    Dernier message: 24/03/2012, 18h56
  2. Réponses: 5
    Dernier message: 16/01/2009, 12h54
  3. CSS non prit en compte
    Par Gregory.M dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 22/12/2008, 16h59
  4. Réponses: 4
    Dernier message: 14/02/2005, 19h41
  5. [thread] Exception non catchée
    Par mammistegon dans le forum Concurrence et multi-thread
    Réponses: 3
    Dernier message: 22/11/2004, 21h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo