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 :

problème avec l'instruction try catch endtry


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 10
    Points : 8
    Points
    8
    Par défaut problème avec l'instruction try catch endtry
    bonjour à tous, je suis un développeurs débutant en Visual basic.net. Actuellement je suis entrain d'apprendre vb.net par l'entremise d'un livre. le problème est que dans le corp d'une classe, la commande Try...catch...endtry ne fonctionne pas. je l'ai essayé dans une procédure, elle fonctionne. je voudrai vous demander de l'aide pour pouvoir deboguer ce probleme, car les pratiques du livre ne l'utilisent pas dans des procedures créer par l'utilisateur ou des fonctions, mais dans les procedures evenementiels des classes et des objets.
    si quelqu'un peut me donner des pistes pour le dépannage de ce mal qui m'empeche de progresser . merci

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Et pour toi, qu'est ce que le bloc try/catch est sensé faire ?
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    le bloc try/catch permet une gestion structurée d'erreurs et dans le cas qui est le mien, il n'arrive pas à fonctionner dans le corp de la classe, mais fonctionne bien dans une procédure evénementielle d'un objet. je pense que je peux le supporter. Il se pose encore un autre probleme, en executant ce code pour afficher les informations conténues dans une bdd, il y a une exception "System.ArgumentException" avec la variable "IndiceLivre" dans la procedure d'affichage "AfficheLivre()", car j'ai mis un message qui dois s'afficher en cas d'erreurs, le message s'affiche. cette variable permet de gerer les deplacements dans la bdd pour afficher le bon resultat.
    je voudrai savoir comment resoudre ce problème dont

    voici le code.

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    Module ModulePrincip
        Public IndiceLivre As Integer ' permettra de gerer les deplacements
        Dim Principal As New FrmPrincip()
     
        Sub Main()
            IndiceLivre = 0
            System.Windows.Forms.Application.Run(Principal) ' Principal est le forms
        End Sub
    End Module
     
    Imports System
    Imports System.Data.OleDb
    Imports System.IO
    Public Class FrmPrincip
        Inherits System.Windows.Forms.Form
        '
        'La connexion
        '
        Const ChaineConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\BdBibliotheque.mdb;Mode=ReadWrite|Share Deny None;Persist Security Info=False"
        Public MaConnex As New OleDb.OleDbConnection(ChaineConn)
        Dim DataSetLivre As New DataSet()
        Dim ResReq As DataTable
        Dim UnEnreg As DataRow
        Dim MaReqt As New OleDb.OleDbDataAdapter()
     
     
        Private Sub FrmPrincip_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim ObjCmd As New OleDb.OleDbCommand()
            Dim ChaineSql As String
     
            ChaineSql = "SELECT CodMedia, Titre FROM Media"
     
            Try
                MaConnex.Open()
                ObjCmd.CommandText = ChaineSql
                ' la propriete commandtext contient la chaine sql
                ObjCmd.Connection = MaConnex
                MaReqt.SelectCommand = ObjCmd
            Catch ex As Exception
                MsgBox("Connexion Impossible")
            End Try
        End Sub
     
     
        Private Sub BtnCharger_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCharger.Click
            Try
                MaReqt.Fill(DataSetLivre, "Liste des livres")
            Catch ex As Exception
                MsgBox("Erreur lors du chargement des données", MsgBoxStyle.Critical)
            End Try 'Inutile d'aller plus loin !
            MaConnex.Close()
            ResReq = DataSetLivre.Tables("Liste des livres")
            AfficheLivre()
            ' Utilisation d'une procedure d'affichage
            BtnSuivant.Enabled = True
            ' les boutons de parcours sont utilisables
            BtnPrecedent.Enabled = True
        End Sub
     
        Private Sub BtnQuitter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnQuitter.Click
            End
        End Sub
     
        Private Sub BtnPrecedent_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPrecedent.Click
            If IndiceLivre = 0 Then
                MsgBox("il n'y a plus de livre à visualiser")
            Else
                IndiceLivre = IndiceLivre - 1
                AfficheLivre()
            End If
        End Sub
     
        Private Sub BtnSuivant_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSuivant.Click
            If IndiceLivre = ResReq.Rows.Count - 1 Then
                MsgBox("Il n'y a plus de livre à visualiser")
            Else
                IndiceLivre = IndiceLivre + 1
                AfficheLivre()
            End If
        End Sub
        Private Sub AfficheLivre()
            Try
                UnEnreg = ResReq.Rows(IndiceLivre)
                TxtCodeLivre.Text = UnEnreg("CodeMedia")
                TxtTitreLivre.Text = UnEnreg(1)
            Catch ex As Exception
                MsgBox("Erreur de referencement d'objet, l'application ne peut tourner", MsgBoxStyle.Critical)
            End Try
     
        End Sub
    End Class
    si quelqu'un peut me donner une piste de solution pour reussir. merci

Discussions similaires

  1. Problème avec eval et try/catch
    Par kracter56 dans le forum MATLAB
    Réponses: 1
    Dernier message: 20/11/2012, 06h46
  2. [aide]probléme avec l'instruction group by
    Par diden138 dans le forum Bases de données
    Réponses: 4
    Dernier message: 25/05/2007, 07h09
  3. Réponses: 13
    Dernier message: 03/08/2006, 16h31
  4. Problème avec l'instruction IN : 16 bits retournés
    Par HadiNET dans le forum Assembleur
    Réponses: 4
    Dernier message: 11/02/2006, 17h43
  5. Problème avec une instruction OUTER /Postgres
    Par Volcomix dans le forum Langage SQL
    Réponses: 14
    Dernier message: 21/04/2004, 16h56

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