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 :

Problème d'erreur non rattrapée


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 21
    Points : 15
    Points
    15
    Par défaut Problème d'erreur non rattrapée
    Bonjour,
    je développe une application de traitements d'images médicales, qui doit pouvoir traiter en série plusieurs dossiers comportant des images.
    Lors de tests sur une grande quantité de dossier, j'ai obtenu un plantage de mon programme alors que l'erreur s'est produite à un endroit où elle était censée etre gérée grace à un bloc try catch. L'erreur est survenue après environ 7h30 de fonctionnement du programme...

    voici le code où s'est produit l'erreur : (fichier BatchRegiatration.m a la ligne 862)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    %pour chaque dossier
    try
        disp(sprintf('Registering slice nb %i',dossier))
        [StackR,Mask] = RegisterSliceICA_step1(StackR,nSlice,'Display','off');
        [StackR,Mask,mix] = RegisterSliceICA_step2(StackR,nSlice,Mask,'Display','off');
        StackR = RegisterSliceICA_step3(StackR,nSlice,Mask,mix,'Display','off');
    catch Error
        %Gestion de l'exception puis passage au dossier suivant
    end
    et voici l'erreur obtenue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Registering slice nb 1
    ??? Operation terminated by user during ==> RegisterSlice2 at 181
     
    In ==> RegisterSliceICA_step2 at 176
        [dx,dy] = RegisterSlice2(StackSS,iSlice,Metric,Reference,MaskSS,Range,'Waitbar','off');
     
    In ==> BatchRegistration at 131
                                [StackR,Mask,mix] = RegisterSliceICA_step2(StackR,nSlice,Mask,'Display','off');
     
    In ==> BatchSelection>NextButton_callback at 864
                BatchRegistration(ListSelectedDir, MassBDFile_Path, SavePath, 'Display','on');
     
    ??? Error while evaluating uicontrol Callback
    Je précise que le traitement est lancé via une interface graphique mais normalement la gestion de l'erreur devrait se faire dans le fichier BatchRegistration et non provoquer un plantage complet du programme....

    quelqu'un voit-il d'où vient le problème ?
    Est-ce un problème du à Matlab ?

    Merci de votre aide... (je doit rentre mon projet dans 4 jours... )
    (PS : Matlab version 7.5)

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 309
    Points : 52 901
    Points
    52 901
    Par défaut
    Registering slice nb 1
    ??? Operation terminated by user during ==> RegisterSlice2 at 181
    Ce message signifie que l'erreur vient d'une manipulation d'un des objets de l'interface (click sur un bouton ou autre) et non pas du programme en lui même

  3. #3
    Membre à l'essai
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    C'est ce qu'il me semblait mais le truc c'est que je n'ai touché a aucun boutons puisque tout le monde était en week end a ce moment là (l'erreur est survenue a 00h10 samedi...)
    donc d'où peut provenir cette erreur...

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 309
    Points : 52 901
    Points
    52 901
    Par défaut
    ??? Error while evaluating uicontrol Callback
    Pourtant ce message dit clairement qu'une action a été exécutée depuis un objet de l'interface

  5. #5
    Membre à l'essai
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    hé bien oui c'est bien ça que je ne comprend pas ou alors l'erreur viendrai de Matlab?
    ou en fait, comme ma fonction est lancée par un GUI, je pense que vu que la fonction qui a appelée BatchRegiatration est un callback du GUI c'est peu etre pour cela... mais j'ai également un bloc try catch qui gère les erreurs survenant dans BatchRegistration en affichant une boite de dialogue d'erreur...
    donc dans tout les cas l'erreur devrait être traitée (a la base directement dans BatchRegistration, mais sinon au moins dans mon callback...)
    cette erreur me parait très obscure...

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 309
    Points : 52 901
    Points
    52 901
    Par défaut
    Oui, tu as raison. Le problème est bien survenu après le click d'un bouton... celui sur lequel tu as appuyé avant de partir en week end

    Sinon, as tu regardé dans RegisterSlice2 ?
    Registering slice nb 1
    ??? Operation terminated by user during ==> RegisterSlice2 at 181

  7. #7
    Membre à l'essai
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    oui en fait RegisterSlice2 est une fonction que je n'ai pas développé moi même, mais en regardant où s'est produit l'erreur, hé bien je ne vois pas pourquoi l'erreur s'est produite ! cette fonction est appelée pour chaque dossier et fonctionne très bien d'habitude.
    Le pire, c'est que j'ai réessayé de traiter uniquement ce dossier et cela fonctionne parfaitement.Actuellement je suis en train de traiter un nombre de dossier plus petit (50 au lieu de 100 ce week end), et pour le moment, le dossier pour lequel est survenue l'erreur est passé et tout c'est déroulé sans problème.
    S'il y avait eu un problème du genre mémoire saturée ou autre le message d'erreur aurait été différent ?

  8. #8
    Membre à l'essai
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    je met quand même le code où s'est produit l'erreur au cas où, mais je ne voit pas d'où elle peut provenir

    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
     
    for i=1:length(timepts)
                iFrame = timepts(i);
                ima = Stack.Slice(iSlice).Frame(iFrame).Im;
                % Compute Reference
                ref = ComputeReference(Stack,iSlice,iFrame,Ref);
                for ix=1:length(vy)
                    for iy=1:length(vx)
                        % Displace image
                        dima = MoveImage(ima,-vx(iy),-vy(ix));
                        % Compute criterion
                        tmp = CompareImages(dima,ref,Metric,Mask);
                        h(ix,iy) = min(tmp(:));
                    end
                end
                % Locate best value for criterion
                if strcmpi(Metric,'SSD')
                    if isnan(min(h(:)))
                        ix = MAX_DISP+1;
                        iy = MAX_DISP+1;
                    else
                        [ix,iy] = find(h==min(h(:)));
                    end
                else
                    [ix,iy] = find(h==max(h(:)));
                end
                dx(iFrame) = vx(iy); % -------------> L'erreur est à cette ligne
                dy(iFrame) = vy(ix);
            end

  9. #9
    Membre averti

    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 352
    Points
    352
    Par défaut
    installe une camera de surveillance....

  10. #10
    Membre à l'essai
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    lol j'aimerai bien si ca se trouve c'est juste un rat qui est passé sur le clavier
    mais bon dans un hôpital c'est quand même peu probable !

Discussions similaires

  1. Problème de resources non trouvées (erreur 1814)
    Par Flow_75 dans le forum Windows
    Réponses: 1
    Dernier message: 05/08/2014, 11h07
  2. Problème de resources non trouvées (erreur 1814)
    Par Flow_75 dans le forum Développement Windows
    Réponses: 0
    Dernier message: 31/07/2014, 21h04
  3. Problème DataColumn. erreur non résolu
    Par Naruto_kun dans le forum C#
    Réponses: 0
    Dernier message: 17/04/2009, 10h00
  4. Un erreur non gérée : problème de ressources
    Par Hemophilius dans le forum C++/CLI
    Réponses: 6
    Dernier message: 19/09/2008, 21h22
  5. [Accents - XML] Problème de codage non supporté !!
    Par Smortex dans le forum Composants VCL
    Réponses: 6
    Dernier message: 24/11/2002, 11h00

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