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 :

[VB.NET] Continuer le programme après traitement des exceptions ?


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2005
    Messages : 307
    Par défaut [VB.NET] Continuer le programme après traitement des exceptions ?
    Bonjour à tous!

    J'ai une petite question au sujet de la gestion des exceptions sous VB.Net 2003.
    Je voudrais savoir s'il est possible de forcer la continuation du programme après avoir traité une exception.

    Je m'explique! Admettons que je détecte une erreur, fichier non existant par exemple. Une exception est levée, je la traite, je créer le fichier manquant, et je veux ensuite reprendre l'éxécution du programme à l'endroit où il s'est arrêté au lieu de le terminer.

    Comment faire ?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 110
    Par défaut
    N'utiliserais tu pas la commande Throw pour gerer l'exception ?

    Car si tu te contente de faire ta gestion d'exception dans ton catch il n'y a pas de raison pour que le programme ne continue de s'executer.

    Neanmoins pour le cas dont tu parle il est quand même plus propre de verifier avant si le fichier existe plutot que de tenter de l'ouvrir et d'attendre une potentiel exception.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2005
    Messages : 307
    Par défaut
    Oui je me suis mal exprimé :
    Je teste l'existance du fichier, s'il n'existe pas je lève une exception (throw), je traite l'erreur (création du fichier, log, alertes mail...), et selon l'erreur, reprendre le programme à l'endroit où l'exception a été lancée.

    L'exemple du fichier n'est qu'un exemple (évidement )

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 110
    Par défaut
    Quand tu fait un throw, tu arrête le bloc en cours pour renvoyer l'exception au bloc parent (le plus souvent l'appel à la méthode où tu as fait ton throw).

    Dans ton cas, il est peut être plus judicieux dans le catch de vérifier la nature de l'erreur (si dans ton exemple c'est un fichier manquant ou autre chose) et suivant le résultat de faire un throw si ça n'est pas le fichier manquant sinon de lancer une fonction / procédure qui va créer le fichier sans faire de throw, de cette façon ton bloc courant va continuer à s'exécuter.

    Le throw ne sert pas à récupérer l'exception (c'est le catch qui le fait) mais à renvoyer l'exception à l'appelant du bloc (ou bloc parent).

    Si ce que je dit n'est pas claire n'hésite pas à poser tes questions

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2005
    Messages : 307
    Par défaut
    Merci Tnopy!

    C'est ce que j'ai finalement fait. Aux endroits sensibles j'ai fais plusieurs blocs try/catch, et un try/Catch sur la méthode Main().

    Lorsque l'erreur est inconnue ou que je ne peux rien faire pour l'éviter, je renvois l'exception au catch de la méthode Main()...

    Enfin je sais pas trop si c'est clair, mais ça marche

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 110
    Par défaut
    J'ai bien compris.

    De rien ...

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

Discussions similaires

  1. Programme de traitement des données manquantes
    Par stig_66 dans le forum Algorithmes et structures de données
    Réponses: 0
    Dernier message: 17/04/2013, 15h29
  2. Réponses: 1
    Dernier message: 29/11/2011, 21h35
  3. Programme de traitement des salaires très lent
    Par salimdz dans le forum Bases de données
    Réponses: 22
    Dernier message: 06/03/2008, 21h33
  4. traitement des exceptions
    Par jadey dans le forum SQL
    Réponses: 1
    Dernier message: 02/05/2007, 14h58
  5. [Exceptions] Système de traitement des exceptions
    Par jenesuispasunrobot dans le forum Langage
    Réponses: 5
    Dernier message: 07/12/2005, 11h09

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