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

VB.NET Discussion :

Catch d'une exception levée dans une classe en mode data binding


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2006
    Messages : 102
    Points : 69
    Points
    69
    Par défaut Catch d'une exception levée dans une classe en mode data binding
    Bonjour,

    J'ai plusieurs contrôles (textbox, checkbox, etc.) qui sont bindés à des propriétés d'une classe.

    Lorsque l'usager entre une valeur, si la valeur n'est pas conforme aux règles d'affaires (business rules), la propriété lève une exception (BusinessRuleException).

    Ma question: Comment 'catcher' cette exception dans mon application (form)?


    Merci.

  2. #2
    Membre expérimenté Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Points : 1 338
    Points
    1 338
    Par défaut
    Salut

    Avec un try catch tout simplement?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    try{
    }
    catch(BusinessRuleException ex)
    {
    //mon code
    }

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2006
    Messages : 102
    Points : 69
    Points
    69
    Par défaut
    Salut bizet

    Je sais bien que c'est par un Try Catch mais où est-ce que je le mets ce Try Catch??

    Comme la propriété Text de mon TextBox est bindé sur la propriété de ma classe, je n'appelle pas la propriété par code et donc, je ne peux mettre un try catch.

    Et il n'est pas question que je mette un MessageBox dans une classe!!!

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2006
    Messages : 102
    Points : 69
    Points
    69
    Par défaut
    Finalement, après plus d'une heure de recherche, j'ai trouvé...

    Il faut gérer l'événement BindingComplete du BindingSource qui fait le lien entre la classe et le contrôle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Private Sub TestBindingSource_BindingComplete(ByVal sender As Object, ByVal e As System.Windows.Forms.BindingCompleteEventArgs) Handles TestBindingSource.BindingComplete
            If e.BindingCompleteState = BindingCompleteState.Exception Then
                MsgBox(e.Exception.Message)
            End If
        End Sub

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 05/04/2011, 08h06
  2. Réponses: 6
    Dernier message: 13/11/2009, 16h06
  3. Réponses: 5
    Dernier message: 20/11/2007, 16h04
  4. Réponses: 4
    Dernier message: 16/05/2006, 23h15
  5. Réponses: 11
    Dernier message: 06/12/2005, 08h23

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