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

C# Discussion :

Gestion personnalisé des exceptions


Sujet :

C#

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Gestion personnalisé des exceptions
    Bonjour à tous =)

    J'ai un petit soucis, quand à la gestion des exceptions. Je dois faire une classe pour les gérer, mais je ne vois pas le fonctionnement au niveau de mes méthodes, comment ces exceptions perso vont être catch par exemple..

    J'ai fais une classe sur un modèle que j'avais vu et j'en ai rajouter une en dessous pour les fichier inexistant :

    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
    public class FtpException : ApplicationException
        {
            public FtpException(string message, Exception innerException)
                : base("FTP :" + message, innerException)
            {
     
            }
     
            public FtpException(string message)
                : base("FTP :" + message)
            {
     
            }
        }
     
        public class FileNotFound : FtpException
        {
            public FileNotFound(string fileName)
                : base("Fichier" + fileName + "inéxistant")
            {
     
            }
     
            public FileNotFound(string fileName, Exception innerException)
                : base("Fichier" + fileName + "inéxistant", innerException)
            {
     
            }
        }
    et j'avais essayé d'implémenter ça a une de mes méthodes, en lui passant un fichier non présent sur le FTP, pour qu'il lève une exception du type, FileNotFound :

    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
    public bool FtpDeleteFile(string fileNamePath)
            {
                try
                {
                    Uri srvUri = new Uri("ftp://" + this.hostname + "/" + fileNamePath);
                    FtpWebRequest request = initRequest(srvUri);
                    request.Method = WebRequestMethods.Ftp.DeleteFile;
                    request.GetResponse().Close();
                }
                catch (FileNotFound)
                {
                    throw new FileNotFound(Path.GetFileName(fileNamePath));
     
                }
                catch (Exception)
                {  
                    return false;
                }
                return true;
            }
    en débugant, il passe directement dans le deuxième catch.. Et je dois dire que je ne vois pas du tout comment faire.. quelqu'un peut t'il m'aiguiller ou m'aider pour comprendre le fonctionnement ?

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par Dreamin Voir le message
    en débugant, il passe directement dans le deuxième catch
    Parce que l'exception que tu reçois n'est pas une FileNotFound, c'est (probablement) une WebException. Tu pourrais examiner le code d'erreur de la réponse (via WebException.Response), mais je ne crois pas qu'il y ait un code de statut FTP spécifique pour le cas d'un fichier inexistant...

    2 remarques en passant:
    - le nom d'une classe d'exception doit toujours se terminer par "Exception"
    - il n'est plus recommandé d'hériter de ApplicationException pour les exceptions personnalisées, il vaut mieux hériter de Exception

  3. #3
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Points : 1 187
    Points
    1 187
    Par défaut
    Bonjour,

    Et j'ajoute que tes exceptions issues de ta gestion d'exception ne peuvent être levées par ton code.

    L'intérêt c'est de créer des exceptions que tu sais reconnaître et donc que tu sais gérer avec un traitement adéquat.

    Si on prend l'exemple du FileNotFoundException, tu dois vérifier si le fichier existe et s'il n'existe pas tu dois lever ton exception en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Throw new FileNotFoundException

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Ok merci de vos aides

    Je m'y remet !

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

Discussions similaires

  1. Gestion bizzare des exceptions
    Par inflamers dans le forum VC++ .NET
    Réponses: 3
    Dernier message: 17/10/2006, 08h24
  2. Gestion des exception (EOleException)
    Par shurized dans le forum Bases de données
    Réponses: 5
    Dernier message: 30/06/2004, 17h25
  3. [XMLRAD] gestion des exceptions
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 28/01/2003, 17h48
  4. 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