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

Windows Forms Discussion :

[C#]Gestion des exceptions


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 266
    Par défaut [C#]Gestion des exceptions
    Bonjour,

    Alors que je suis entrain de bosser sur une application que je développe en 3-tiers je me pose une question ....

    Doit on vraiement gérer toutes les exception et si oui comment ??

    En partant de cette question je me suis penché sur ma couche basse (Couche d'acces aux données) et la je me suis dit que beaucoup de methodes ou de propriétés pouvaient générer une excpetion et ceux ci donne une liste assez impressionnante d'exception :

    Exception
    FormatException
    NullArgumentException
    ArgumentException
    SqlExcption
    XmlExcpetion
    XpathException
    OutOfMemoryExcpetion ... ... ...

    Hors il peux arriver qu'une methodes me donne au moin 8 exception à gérer.

    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
     
    catch(TargetInvocationException ex)
    			{
    				throw ex;
    			}
    			catch(XPathException ex )
    			{
    				throw  ex;
    			}
    			catch(XmlException ex)
    			{
    				throw ex;
    			}
    			catch(ArgumentException ex)
    			{
    				throw ex;
    			}
    			catch(MapperNullException ex)
    			{
    				throw ex;
    			}
    			catch (MapperFormatException ex)
    			{
    				throw ex;
    			}
    			catch (MapperOverflowException ex)
    			{
    				throw ex;
    			}
    			catch (MapperArgumentException ex)
    			{
    				throw ex;
    			}
    			catch (MapperException ex)
    			{
    				throw ex;
    			}
    			catch (Exception ex)
    			{
    				throw ex;
    			}
    Donc comment peut on faire car en gérerant ses 8 exception dans une methode dois je remonter ses 8 exception à la methode appelante de ma premiere methodes ??

    Et si ma deuxieme methode est appeler dans un troisieme dois je toujours remonter mes excpetion dans leur totalité ??

    Merci de bien vouloir m'eclairer sur ce point

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 238
    Par défaut
    Si tu catch Uniquement le type Exception tu attraperas tous les types d'exception.
    Si tu fait le même traitement pour tous les types d'exceptions autant ne catcher que celle-ci.

    Si tu fait un traitement particulier pour un certain type catch le avant le type Exception.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 266
    Par défaut
    il me semblais avoir lu qu'il fallais géer toutes les exceptions ???

    si je cacth avec exception seulement cella suffi a remonter la bonne exception ?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 266
    Par défaut
    OK apres des test je comprend ce que tu me dit

    merci

    derniere question existe t'il une methode ou propriété me permettant de connaitre tout le chemin par la quelle est passé mon exception ?

    Dans un cas que je vien de tester on peu voir d'où a commencer l'exception et qu'elle methode du départ venai l'action mais je ne retrouve pas tous les methode par la quelle est passé mon exception

    RivalisMapper.Instrumentation.Exceptions.MapperException:
    eeeee ---> System.InvalidCastException:
    Le cast spécifié n'est pas valide. at RivalisMapper.MasterMapper.GetData(MasterDAC aroMappingObject,
    String arsMethodName, Object aroReturnObject,
    RequestSource aroRequestSource, DataSourceConnection aroDataSourceConnection,
    RequestFilters aroAdditionalParameters, IDbTransaction aroSqlTransaction) i
    n c:\projet\rivalismapper\mastermapper\mastermapper.cs:line 1022
    --- Fin de la trace de la pile d'exception interne ---
    at Rivalis.FrmLogin.btrOk_Click(Object sender, EventArgs e)
    in c:\projet\rivalis\ecransprevisionnel\frmlogin.cs:line 420
    at System.Windows.Forms.Control.OnClick(EventArgs e)
    at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    at System.Windows.Forms.Control.WndProc(Message& m)
    at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
    at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
    at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
    at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
    at System.Windows.Forms.ComponentManager.System.Windows
    .Forms.UnsafeNativeMethods+IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
    at System.Windows.Forms.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) at System.Windows.Forms.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
    at System.Windows.Forms.Application.RunDialog(Form form)
    at System.Windows.Forms.Form.ShowDialog(IWin32Window owner)
    at System.Windows.Forms.Form.ShowDialog() at Rivalis.FrmRivalis.ChargeLogin() in c:\projet\rivalis\frmrivalis.cs:line 593
    at Rivalis.FrmRivalis.Main(String[] argC) in c:\projet\rivalis\frmrivalis.cs:line 563



    l'exception est bien déclancher dans ma methode de base dans ma couche la plus basse et je peux voir qu'elle action de ma couche la plus haut est a l'origine de l'appel mais je ne vois pas par quel methode de mes couches intermédiaire je suis passé

    Merci

  5. #5
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Par défaut
    Salut .

    dans l'exemple que tu donnes tu as tout le code suivi par l'exception : de ton exception (en haut) jusqu'au Main (en bas) . je vois pas ce que tu veux de plus.

    De plus vu le code que tu as donné au début, je voit pas l'interet de catcher les exceptions si c'est pour les faire remonter avec un Throw ... autant rien faire, elles vont remonter toute seules.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 266
    Par défaut
    De plus vu le code que tu as donné au début,
    je voit pas l'interet de catcher les exceptions
    si c'est pour les faire remonter avec un Throw ...
    autant rien faire, elles vont remonter toute seules.
    c'est juste un exemple

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

Discussions similaires

  1. [ADOConnect] gestion des exception en tout temps
    Par portu dans le forum Bases de données
    Réponses: 1
    Dernier message: 20/04/2005, 19h01
  2. [ORACLE 9i] Gestion des exceptions
    Par sygale dans le forum SQL
    Réponses: 6
    Dernier message: 19/08/2004, 15h06
  3. Gestion des exception (EOleException)
    Par shurized dans le forum Bases de données
    Réponses: 5
    Dernier message: 30/06/2004, 17h25
  4. [XMLRAD] gestion des exceptions
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 28/01/2003, 17h48
  5. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 14h11

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