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

MATLAB Discussion :

Comment définir l'exception dans un try/catch


Sujet :

MATLAB

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 769
    Points : 726
    Points
    726
    Par défaut Comment définir l'exception dans un try/catch
    Bonjour à tous,

    J'aimerais comprendre l'utilisation de l'ensemble try/catch. Enfin, j'en comprends le sens mais je ne sais pas quoi mettre comme "exception" en face du catch. Si on regarde la doc :
    Syntax


    try
    statements
    catch exception
    statements
    end

    Description


    try and catch blocks allow you to override the default error behavior for a set of program statements. If any statement in a try block generates an error, program control goes immediately to the catch block, which contains your error handling statements.

    exception is an optional MException object input to the catch block that allows you to identify the error.

    Both try and catch blocks can contain nested try/catch statements
    Pour comprendre, j'aimerais que vous me disiez quelle "exception" je dois indiquer lorsque j'utilise le try/catch pour vider le buffer d'un port série. Mon code est celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    try
        vidange=fread(microchip_obj,microchip_obj.BytesAvailable);   % on vide le buffer
    catch
        vidange=0;
    end
    On peut éviter d'utiliser le try/catch mais je vais me répèter : Je veux comprendre comment définir l'exception et ne plus avoir le catch de souligné.

    Cordialement,
    Christophe Halgand
    INCIA : MATLAB R2014a sous MAC OS 10.9.3

    Nous piétinerons éternellement aux frontières de l'Inconnu, cherchant à comprendre ce qui restera toujours incompréhensible. Et c'est précisément cela qui fait des nous des hommes. Isaac Asimov

  2. #2
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 883
    Points : 3 432
    Points
    3 432
    Par défaut
    il suffit de definir une variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    try
    ...
    catch myexception
    ...
    end
    myexception sera souligné si tu ne l'utilise pas
    la facon la plus simple de l'utiliser est rethrow

    en général dans le catch on tente de résoudre le probleme et si on y arrive pas on rebalance l'erreur via rethrow

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 769
    Points : 726
    Points
    726
    Par défaut
    Peux-tu me donner un exemple ?

    Cordialement
    Christophe Halgand
    INCIA : MATLAB R2014a sous MAC OS 10.9.3

    Nous piétinerons éternellement aux frontières de l'Inconnu, cherchant à comprendre ce qui restera toujours incompréhensible. Et c'est précisément cela qui fait des nous des hommes. Isaac Asimov

  4. #4
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 883
    Points : 3 432
    Points
    3 432
    Par défaut
    désolé j'ai jamais lu de port série

    mais y a un bon exemple (sur la lecture de fichier) dans la doc :
    http://www.mathworks.fr/fr/help/matl...exception.html

    sinon pour savoir quelle exception il faut filtrer, si tu sais générer une erreur, fais le avec le code pour avoir l'identifiant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    try
        vidange=fread(microchip_obj,microchip_obj.BytesAvailable);   % on vide le buffer
    catch myException
        disp(myException.identifier);
    end

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 769
    Points : 726
    Points
    726
    Par défaut
    Ok, je viens de trouver. Voici un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    portserie_obj=serial('com1');
    try
        fopen(portserie_obj)
    catch myexception
        disp(myexception.identifier)
    end
    Et matlab retourne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MATLAB:serial:fopen:opfailed
    Merci,
    Cordialement,
    Christophe Halgand
    INCIA : MATLAB R2014a sous MAC OS 10.9.3

    Nous piétinerons éternellement aux frontières de l'Inconnu, cherchant à comprendre ce qui restera toujours incompréhensible. Et c'est précisément cela qui fait des nous des hommes. Isaac Asimov

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

Discussions similaires

  1. Erreur, même dans un try-catch
    Par TheCool dans le forum C#
    Réponses: 3
    Dernier message: 06/03/2008, 19h26
  2. comment afficher les exceptions dans console eclipse 3.3
    Par booba12 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 06/12/2007, 14h14
  3. Réponses: 3
    Dernier message: 12/12/2006, 18h58
  4. Comment définir un tableau dans une classe?
    Par Pragmateek dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 30/04/2006, 20h34
  5. Réponses: 2
    Dernier message: 28/08/2003, 00h00

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