Try wird nicht ausgeführt

  • VB.NET

Es gibt 51 Antworten in diesem Thema. Der letzte Beitrag () ist von fiedel93felix.

    Try wird nicht ausgeführt

    Hallo miteinander,
    ich habe seit kurzen ein Problem mit der Programmierung.Wenn ich etwas in meinen Programmen änder und dann neu erstelle werden Try Catch Anweisungen nicht mehr richtig ausgeführt.

    VB.NET-Quellcode

    1. Try MsgBox("11")
    2. Dim HilfTol As String = ""
    3. HilfTol = Builder.CustomPropertyTable.Item("MBDi").ToString.Replace(" ", "")
    4. HilfTol = HilfTol.Replace(",", ".")
    5. If HilfTol.Contains("+") Or HilfTol.Contains("-") Or
    6. HilfTol.Contains("±") Or HilfTol.Contains("%%P") Or
    7. HilfTol.Contains("%%p") Then
    8. If HilfTol.Contains("+") Then
    9. BDi = Mid(HilfTol, 1, InStr(HilfTol, "+") - 1)
    10. End If
    11. If HilfTol.Contains("-") Then
    12. BDi = Mid(HilfTol, 1, InStr(HilfTol, "-") - 1)
    13. End If
    14. If HilfTol.Contains("±") Then
    15. BDi = Mid(HilfTol, 1, InStr(HilfTol, "±") - 1)
    16. End If
    17. If HilfTol.Contains("%%P") Then
    18. BDi = Mid(HilfTol, 1, InStr(HilfTol, "%%P") - 1)
    19. End If
    20. If HilfTol.Contains("%%p") Then
    21. BDi = Mid(HilfTol, 1, InStr(HilfTol, "%%p") - 1)
    22. End If
    23. Else
    24. BDi = Builder.CustomPropertyTable.Item("MBDi")
    25. End If
    26. MsgBox("2")
    27. Catch ex As Exception
    28. End Try
    29. MsgBox("3")


    Der Code läuft bei mir schon seit über 8 Jahren so und jetzt kommt hier der Fehler aus dem Anhang.
    (Msgbox("11") wird angezeigt und danach kommt der Fehler, beim Fehler sollte ja eigentlich in Catch gesprungen werden und dann würde es Msgbox("3") anzeigen....)
    Bilder
    • Fehlermeldung.PNG

      26,3 kB, 422×316, 73 mal angesehen
    Nicht nur temporär auskommentieren. Ganz weglassen! Alle möglichen Fehler beseitigen. Wenn man anständig programmiert treten solche Fehler wie in deinem Fall erst garnicht auf, dann braucht man auch nicht versuchen die mit Try/Catch zu verschlucken. Manchmal braucht man Try's, aber ich wette hier kommst du ohne aus.
    Zitat von mir 2023:
    Was interessiert mich Rechtschreibung? Der Compiler wird meckern wenn nötig :D
    Ich weiß genau wo der Fehler aufkommt, mir geht es ja nicht um den Fehler.
    Mir geht es darum, dass Try nicht funktioniert und ich aber weiterhin mit Try arbeiten möchte.
    Wie bereits geschrieben läuft der Code seit 8 Jahren ohne Probleme und jetzt auf einmal geht Try nicht mehr....
    Ich habe den Code erweitert aber an diesem speziellen Beispiel hab ich kein einziges Zeichen geändert.

    fiedel93felix schrieb:

    mir geht es ja nicht um den Fehler.


    Echt jetzt? Ich täte alles dran setzen die Ursache zu beheben anstatt gegen Symptome zu kämpfen, bei einer solchen "sauerei" bin ich denn mal raus aus dem Thema.

    Du siehst ja wohin sowas führt, App funktioniert nicht mehr.
    Zitat von mir 2023:
    Was interessiert mich Rechtschreibung? Der Compiler wird meckern wenn nötig :D

    Montoyafan schrieb:

    Mehr kann man ja leider nicht lesen.


    Mehr Informationen braucht man auch nicht. Wenn du auf dem Screenshot genau hinschaust, siehst du das der Platz zwischen Zeichenfolge und in ein wenig größer ist als woanders. Wird sich um einen leeren String handeln, dann knallt es vermutlich in Zeile 26

    Wirft man den Try raus, sieht man in welcher Zeile es knallt, wobei die Zeile eigendlich markiert sein sollte, da nicht zum Catch gesprungen wird.
    Zitat von mir 2023:
    Was interessiert mich Rechtschreibung? Der Compiler wird meckern wenn nötig :D

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „DTF“ ()

    Montoyafan schrieb:

    Mehr kann man ja leider nicht lesen.
    Ungültige Konvertierung von der Zeichenfolge in Typ Decimal.
    Die Zeichenfolge ist ein Leerstring, sonst würde da stehen (habich ausprobiert):
    Ungültige Konvertierung von der Zeichenfolge abc in Typ Decimal.

    @fiedel93felix Erstell ein neues Projekt und kopiere da so viel Code hinein, dass Dein Effekt reproduziert wird.
    Poste den (begrenzt) laufenden Code, nachdem Du Dich davon überzeugt hast, dass er (begrenzt) läuft.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    fiedel93felix schrieb:

    Es geht nicht um den Fehler!!

    Die Frage:
    Wieso wird die Tryanweisung nicht richtig ausgeführt!


    Das ist mir schon klar, ich werde auch nicht versuchen dich weiter zu überzeugen, meine Antwort war auch an Montoyafan gerichtet.

    Ich hab das mal versucht zu reproduzieren, hab Option Strict Off geschaltet(sollte immer On sein) dann passiert sowas nicht. Wie auf dem Screenshot zu sehen, wird zum Catch gesprungen.
    Bilder
    • Unbenannt.jpg

      82,17 kB, 1.087×500, 58 mal angesehen
    Zitat von mir 2023:
    Was interessiert mich Rechtschreibung? Der Compiler wird meckern wenn nötig :D

    fiedel93felix schrieb:

    Strict "on" oder "Off" ist, Try funktioniert nicht.


    Ist das ein schlechter Scherz? Mit Option Strict On würde dein Programm garnicht kompilieren.

    Wenn nicht, bereinige dein Projekt von Hand. VS Schliessen , .vs, bin, obj Ordner löschen und neu probieren.

    Kann ein Bug vom Studio/Compiler sein, aber das hier ist Troll-verdächtig. Schon allein weil ihm der Fehler nicht juckt.
    Zitat von mir 2023:
    Was interessiert mich Rechtschreibung? Der Compiler wird meckern wenn nötig :D
    @fiedel93felix

    RodFromGermany schrieb:

    Erstell ein neues Projekt und kopiere da so viel Code hinein, dass Dein Effekt reproduziert wird.
    Poste den (begrenzt) laufenden Code, nachdem Du Dich davon überzeugt hast, dass er (begrenzt) läuft.
    Noch so ein leerer Post von Dir und ich bin draußen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Off topic:
    Dieser Thread ist mit "VB.Net" getagt, InStr und MsgBox ist aber VB Syntax. <X
    Die vielen If Blöcke würde ich gegen einen Select Case Block ersetzen und anstatt Or, OrElse verwenden.
    Moment mal, du du fragst ja doppelt ab, was soll der Quatsch ? Du progammierst seit acht jahren !? :/

    Falls du was dazu lernen willst, solltest du auf die guten Ratschläge hier hören !? ;)
    @fiedel93felix:
    Nein, wir können uns aufgrund des Post#1-Codes nicht erklären, warum da Try-Catch nicht greift.
    Was mir aber auffällt:
    1. Try und MsgBox("11") stehen in einer Zeile. Das ist ein Syntaxfehler, also können wir davon ausgehen, dass der Code nachbearbeitet wurde und so nicht im Programm steht. Welche Änderungen noch vorgenommen, ist somit nicht erkennbar und vielleicht wird der Fehler so kaschiert.
    2. BDi ist eine nicht im Code deklarierte Variable. Welchen Datentyp hat sie?
    3. In dem Code erkenne ich auf Anhieb keinen Umwandlungscode von String zu Decimal, den aber der Compiler anmeckert. Da stellt sich die Frage, ob wir an der richtigen Stelle suchen. Oder ist BDi vom Typ Decimal?
    4. Es fehlen Kopf und Fuß der umschließenden Methode. Daher könnte es sein, dass wir uns hier gar nicht Code der Methode txtBetriebsdruck_TextChanged befinden, in der der Fehler auftritt.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    fiedel93felix schrieb:

    Msgbox("11") wird angezeigt und danach kommt der Fehler, beim Fehler sollte ja eigentlich in Catch gesprungen werden und dann würde es Msgbox("3") anzeigen....
    daraus folgere ich erstmal, dass der Fehler nicht im gezeigten Code auftritt, sondern iwo anders , später.
    Kannst du einen Haltepunkt setzen und durchsteppen?
    Bzw ist dir das mit dem Haltepunkt bekannt?

    RodFromGermany schrieb:

    @fiedel93felix

    RodFromGermany schrieb:
    Erstell ein neues Projekt und kopiere da so viel Code hinein, dass Dein Effekt reproduziert wird.
    Poste den (begrenzt) laufenden Code, nachdem Du Dich davon überzeugt hast, dass er (begrenzt) läuft.

    Noch so ein leerer Post von Dir und ich bin draußen.

    Ich habe ein Projekt der nur einmal den Test enthält und hier springt es auch nicht in Catch sondern zeigt wieder eine Fehlermeldung.
    Das Problem wird sein, dass die meisten es nicht testen können weil ich für AutoCAD programmiere und das Programm nur unter AutoCAD läuft.
    Dateien