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 :

Erreur dans le caller, et debugger


Sujet :

MATLAB

  1. #1
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut Erreur dans le caller, et debugger
    Bonjour,

    Je souhaite dans une fonction f lever une erreur au niveau de la fonction appelante. J'ai essayé de la créer dans le parent (assignin) de la lever dans le parent (evalin), de la throw, catcher et rethrow dans le parent...

    Dans tous les cas, le debugger (en mode <dbstop if error>) s’arrête dans ma fonction f. Voyez vous un moyen d'éviter cela ?

    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je ne comprends pas trop la volonté de ne pas pointer sur l'endroit d'origine de l'erreur, mais soit.
    La solution du throw/catch est la bonne sauf que tu ne dois pas "rethrow" l'exception lancée par f, mais juste la "catch" et en lancer une nouvelle.

  3. #3
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour,

    Tout d'abord merci.

    Je ne comprends pas trop la volonté de ne pas pointer sur l'endroit d'origine de l'erreur
    J'implémente un dictionnaire. Je veux que l'erreur <MissingKey> soit lancée au moment ou un utilisateur fait dict.get(key), et non pas dans les couches internes de l'implémentation.

    La solution du throw/catch est la bonne sauf que tu ne dois pas "rethrow" l'exception lancée par f, mais juste la "catch" et en lancer une nouvelle.
    Je ne suis pas sur de comprendre. Me suggère tu de mettre des try à chaque appel de ma méthode get (ce qui n'est pas le but) ? Car si je lance une nouvelle erreur depuis la méthode get(), elle sera encore dans la stack interne.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function exemple
     
    try
        foo()
    catch ME % on attrape l'exception 
        % on en crée une nouvelle avec le bon message
        exception = MException(<tes arguments>);
        throw(exception); % on lance cette nouvelle
    end
     
     
    function foo % fonction susceptible de renvoyer l'erreur
        % ...

  5. #5
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Donc tu me suggères de mettre des try autour de chaque appel à foo(), comme dans ton exemple(). Mon but est d'automatiser cette procédure sans avoir de try externe, mais en modifiant foo seulement.

    throwAsCaller() est censé réaliser cette opération. La stack de l'erreur résultante est correcte (c'est bien celle du parent exemple()), mais le debugger continue à s’arrêter dans foo(), sur la ligne <throwAsCaller>. C'est ce qui me dérange

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function exemple
        foo()
     
    function foo % fonction susceptible de renvoyer l'erreur
        throwAsCaller(MException('error','error'));

Discussions similaires

  1. [Tomcat] configuration d'une page d'erreur dans web.xml
    Par Super Castor dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 08/04/2009, 15h58
  2. [Thread] Erreur dans une classe interne
    Par totof2308 dans le forum Général Java
    Réponses: 5
    Dernier message: 03/06/2004, 08h15
  3. [Lien]erreur dans mon programme python
    Par durnambule dans le forum Général Python
    Réponses: 11
    Dernier message: 29/01/2004, 14h59
  4. [Erreur dans la lib...]
    Par Gonath dans le forum OpenGL
    Réponses: 3
    Dernier message: 22/12/2003, 09h02
  5. Erreur dans l'utilisation de SWAP
    Par mire dans le forum Langage
    Réponses: 12
    Dernier message: 15/03/2003, 21h39

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