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 :

Exception dans publication et pas debogage !


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut Exception dans publication et pas debogage !
    Bonjour, j'ai crée une application je l'ai testé en mode débogage pendant quelques temps et pas de probléme, par contre une fois que je la publie, j'obtient ceci :



    comment ce fait il que entre débogage et publication il est une différence ?
    est ce que le message d'erreur que j'ai me permet d'identifier le problème ?

    dur de trouver d'ou viens le soucis, je n'ai même pas de variable "startIndex" dans mon programme ?

  2. #2
    Membre confirmé
    Homme Profil pro
    Technicien de bureau d etude
    Inscrit en
    Avril 2011
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien de bureau d etude
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 111
    Par défaut
    Visiblement tu utilise une fonction sur une string où il faut que tu donne un caractère de départ startindex et celui-ci est trop faible visiblement.

    Regarde bien le stack-trace et tu trouveras la zone qui pose problème, ensuite encadre la zone avec un Try/Catch.

  3. #3
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 200
    Par défaut
    un bug ne se détecte parfois que sur certains pc du fait d'un environnement différent ou d'une utilisation différente

    les try catch permettent d'intercepter l'erreur et de la traiter dans le code, le programme ne se ferme alors pas comme dans ton screenshot

    dans le try catch on peut récupérer les même infos qui sont détaillées dans la fenetre, et les logger pour les traiter
    les informations interressantes sont
    - le type de l'erreur, ArgumentOutOfRangeException dans ton cas, qui en dit déjà un peu, ca veut dire qu'un paramètre d'une méthode n'est pas dans les valeurs possibles
    - le message "StartIndex ne peut pas être inférieur à zéro", là on te précise que c'est le paramètre StartIndex
    - la pile des appels, qui indique le cheminement du code dans les méthodes, tout en haut c'est le dernier appel, celui qui a généré l'erreur
    dans ton cas on voit
    à String.InternalSubstring (là ou ca à planté)
    à String.SubString (appelé avant la méthode ci dessus)
    à Test_RS232.Filtrage (si j'ai bien lu sur le zoom) ici c'est donc la méthode de ton code qui est à l'origine du bug

    il faut donc que tu ailles voir dans ta méthode à quels endroits tu appels unstring.substring et que tu vérifies comment tu calcules ce que tu mets dans startindex, il vaut une valeur négative alors que c'est interdit
    à
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut
    D'accord merci pour tous ces renseignements ! très intéressant, donc comme tu le dis, ma méthode Filtrage que voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public Function Filtrage(ByVal attente As String) As String
            log(Now.ToString + " " + "Filtre les donnees de Intervention au caractere")
            Dim motARechercher1 As String = "Intervention"
            Dim motARechercher2 As Char = "FIN"
            Dim fin1 As Integer = attente.IndexOf(motARechercher1, 0, System.StringComparison.InvariantCultureIgnoreCase)
            Dim fin2 As Integer = attente.IndexOf(motARechercher2, 0)
            'ici j'ai un prob quand je publie le projet 
            'UN BORDEL pas possible a cause de l'absence du dernier caractére
            If fin2 = -1 Then
                Return attente
            Else
                Return attente.Substring(fin1, fin2)
            End If
        End Function
    pose un problème !

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 200
    Par défaut
    il est précisé dans l'aide qu'IndexOf retourne -1 s'il ne trouve pas la chaine recherchée

    il faut "blinder" un peu plus le code pour traiter tous les cas possibles, et non juste le cas qui marche bien
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut
    merçi pour toutes ces informations, j'ai trouvé un moyens de faire en sorte que meme si le caractére de fin est absent, de récupérer les données

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

Discussions similaires

  1. [debutant] exception: ca ne rentre pas dans le catch
    Par oliv23 dans le forum Débuter
    Réponses: 6
    Dernier message: 14/03/2007, 17h18
  2. gestionnaire d'Exception dans DLL
    Par pirbd dans le forum Langage
    Réponses: 2
    Dernier message: 03/03/2005, 18h58
  3. lien popup href défini dans javascript mé pas visibdans page
    Par Yoyo_galère dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 13/01/2005, 14h43
  4. Capture d'exception dans un constructeur
    Par declencher dans le forum Composants VCL
    Réponses: 8
    Dernier message: 03/02/2004, 12h52
  5. Réponses: 2
    Dernier message: 28/08/2003, 00h00

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