Bonsoir à tous,
Alors que j'ai beaucoup bossé sur VB5, je commence à faire ma première grosse application avec VB.NET (j'ai déjà fait quelques petits programmes).
Je me suis cassé la tête pendant des jours avec un problème très bizarre : mon programme n'allait pas au bout de la procédure "form_load", c'est à dire que les dernières instructions n'étaient pas exécutés, sans que le programme ne plante ou que le VB ne signale une erreur.
Après de nombreuses recherches j'ai quelqu'un qui a eu le même problème que moi sur un forum en anglais : les exeptions ne sont pas toutes capturées dans "form_load" ; en ajoutant un Try...Catch mon programme a trouvé une erreur.
Je suis en train de me rendre compte que VB.NET a tendance à faire ça un peu partout, c'est à dire que quand il y a un bug quelque part dans une procédure, au lieu de planter, VB fait un 'exit sub'
Ce comportement est évidemment horrible non seulement pour le débuggage, mais aussi et surtout pour le fonctionnement normal du programme, qui va continuer à s’exécuter avec des données plus ou incorrectes parce qu’un bug non détecté a fait sauter plusieurs lignes de codes... NDLR : mon logiciel va devoir piloter une machine d'usinage
Autre truc bizarre : une fonction affichait le résultat d'un calcul avec .ToString dans une zone de texte, il y a eu une erreur mais au lieu de planter le programme m'a affiché "+infini" dans la zone de texte
Je ne veux pas que mon programme marche à peu près, je préfère qu'il plante dès qu'il y a une erreur.
Donc ma question : existe t il un moyen avec VB.NET, de forcer le plantage du programme lorsqu'il y a une erreur ? En gros, dire à VB.NET "tolérance zéro" ? Je veux dire, sans que je soit obligé de mettre des Try...Catch dans chaque procédure ?
A noter que j'ai quand même réussit à récupérer pas mal de code VB5, les modifications à faire ne sont pas si compliqués que ça et c'est une bonne chose... peut être que le comportement bizarre de mon programme vient d'instructions VB5 qui ne sont pas vraiment compatibles (mais dans ce cas, pourquoi le compilateur les accepte ???)
Merci
Partager