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

SAP Discussion :

Comment CATCHER toutes les erreurs ?


Sujet :

SAP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 497
    Par défaut Comment CATCHER toutes les erreurs ?
    Bonjour,

    j'aimerais savoir comment CATCHER toutes les erreurs qui peuvent survenir dans un TRY CATCH.

    Actuellement, je fais :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DATA oref TYPE REF TO cx_root.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    TRY .
          PERFORM fct USING    k_bsak_tablename * OBLIGATORY FIELD
                                        k_bukrs_fieldname
                                           .
        CATCH  cx_sy_dyn_call_illegal_type INTO oref.
          PERFORM manager_exceptions_for_dev  USING oref k_serv_class_except
                                                    k_exec_raison
                                                    k_lvl_error_status.
      ENDTRY.


    Mais j'aimerais utiliser quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        CATCH  SYSTEM-EXCEPTIONS OTHERS INTO oref.
    Ainsi, je n'aurais pas à fortement spécifier le type d'erreur dans le CATCH.

    Avez-vous une idée ?

    Merci.
    Cdlt.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Par défaut
    Salut,

    As tu essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    DATA : oref   TYPE REF TO cx_root.
    TRY .
        RAISE EXCEPTION TYPE cx_sy_dyn_call_illegal_type.
      CATCH cx_root INTO oref.
        WRITE 'Catcher'.
    ENDTRY.
    A priori, CX_ROOT serait la classe d'exception de plus haut niveau :
    Images attachées Images attachées  

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 497
    Par défaut
    Mon but est de développer une couche d'expcetions pour les développements, permettant de ne pas Scratché les applications lors des erreurs de DEV.

    Je viens d'essayer ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    DATA oref TYPE REF TO cx_root.
    TYPES tr_range_bukrs TYPE RANGE OF bsak-bukrs.
    DATA  v_so_bukrs  TYPE tr_range_bukrs.
    
    FIELD-SYMBOLS <fs_so_name> TYPE ANY.
    
    TRY .
        MOVE v_so_bukrs  TO <fs_so_name>.
      CATCH cx_root INTO oref.
        WRITE / 'Catché'.
    ENDTRY.

    Mais "ca pète" toujours à la figure ...
    Y a t il des Exceptions qui ne se Catche pas ? Comment faire pour les intercepter ?

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Par défaut
    Effectivement, il existerait des exceptions qui ne seraient pas catchable.

    Je pense que ces exceptions qui ne se catche pas doivent être rare, souvent une erreur de syntaxe dans la programmation...

    Comme par exemple dans ton code, c'est impensable de ne pas mettre un ASSIGN après un field-symbols. C'est une grosse erreur.

    Si tu trouve une solution, je serais preneur ...

  5. #5
    Membre émérite Avatar de Celdrøn
    Homme Profil pro
    Consultant SAP
    Inscrit en
    Juillet 2007
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant SAP

    Informations forums :
    Inscription : Juillet 2007
    Messages : 614
    Par défaut
    Salut,

    La plus grosse erreur ce n'est pas de voir s'il y a eu un ASSIGN... mais d'oublier de tester si le FIELD-SYMBOL a été assigné.

    En gros :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    IF <fs_so_name> IS ASSIGNED.
        MOVE v_so_bukrs  TO <fs_so_name>.
    ENDIF.
    Avec ceci, on limite grandement les dégats... et encore plus les DUMP.

    Soit dit au passage, l'aide SAP te donne la liste des Exceptions capturable et non-capturables pour un bon nombre d'instruction dont l'Instruction ASSIGN.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Août 2009
    Messages
    574
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 574
    Par défaut
    Il y a pas mal d'erreurs non interceptables (c'est indiqué dans la doc de chaque instruction, et il y a d'autres erreurs non interceptables qui ne sont pas spécialement liées aux instructions), donc c'est fichu si tu veux tout intercepter.

    De plus, les erreurs interceptables ne peuvent pas être interceptées si elles se produisent dans une session interne supérieure (expl: tu fais un SUBMIT prog AND RETURN et il s'y produit une erreur interceptable qui n'est pas interceptée par prog, alors tu ne peux pas l'intercepter dans le programme appelant, il y aura toujours un DUMP)

  7. #7
    Inactif  
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 497
    Par défaut
    ... ....

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Août 2009
    Messages
    574
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 574
    Par défaut
    euh c'est pour moi les ... ... ? Je n'étais peut-être pas claire alors! C'est pas grave, de toute façon c'était juste pour dire que ce n'est pas possible de tout catcher, voilà

Discussions similaires

  1. [PL/SQL] voir toutes les erreurs à la compilation
    Par ciol2.6.12 dans le forum Oracle
    Réponses: 2
    Dernier message: 14/04/2006, 18h49
  2. Réponses: 2
    Dernier message: 17/06/2005, 23h03
  3. Réponses: 8
    Dernier message: 05/04/2005, 22h17
  4. Réponses: 3
    Dernier message: 08/08/2004, 21h35
  5. Réponses: 3
    Dernier message: 04/02/2004, 18h35

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