Berechnung funktioniert nicht

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von eliman20000.

    Berechnung funktioniert nicht

    Hi,
    ich verstehe nicht, warum bei dem folgenden Quelltext, auch wenn ich passende Eingaben eingeben, immer der Catch-Teil arbeitet und der Try-Teil nicht funktioniert. Hoffe ihr könnt mir Helfen.


    LG
    eliman20000 :)

    Quellcode

    1. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    2. Dim HPZ As Single = Form2.HPZ
    3. Try
    4. Eingabe(0) = HPZ * 1
    5. Eingabe(1) = HPZ * 0.96
    6. Eingabe(2) = HPZ * 0.95
    7. Eingabe(3) = HPZ * 0.91
    8. Eingabe(4) = HPZ * 0.9
    9. Eingabe(5) = HPZ * 0.86
    10. Eingabe(6) = HPZ * 0.85
    11. Eingabe(7) = HPZ * 0.81
    12. Eingabe(8) = HPZ * 0.8
    13. Eingabe(9) = HPZ * 0.76
    14. Eingabe(10) = HPZ * 0.75
    15. Eingabe(11) = HPZ * 0.71
    16. Eingabe(12) = HPZ * 0.7
    17. Eingabe(13) = HPZ * 0.66
    18. Eingabe(14) = HPZ * 0.65
    19. Eingabe(15) = HPZ * 0.61
    20. Eingabe(16) = HPZ * 0.6
    21. Eingabe(17) = HPZ * 0.56
    22. Eingabe(18) = HPZ * 0.55
    23. Eingabe(19) = HPZ * 0.51
    24. Eingabe(20) = HPZ * 0.5
    25. Eingabe(21) = HPZ * 0.46
    26. Eingabe(22) = HPZ * 0.45
    27. Eingabe(23) = HPZ * 0.41
    28. Eingabe(24) = HPZ * 0.4
    29. Eingabe(25) = HPZ * 0.34
    30. Eingabe(26) = HPZ * 0.33
    31. Eingabe(27) = HPZ * 0.27
    32. Eingabe(28) = HPZ * 0.26
    33. Eingabe(29) = HPZ * 0.2
    34. Eingabe(30) = HPZ * 0.19
    35. Eingabe(31) = HPZ * 0
    36. EingabeTB = CInt(TextBox1.Text)
    37. If EingabeTB < 0 Or EingabeTB > Eingabe(0) Then Label1.Text = "Fehler in Syntax!"
    38. If EingabeTB <= Eingabe(0) And EingabeTB >= Eingabe(1) Then B = 15
    39. If EingabeTB <= Eingabe(2) And EingabeTB >= Eingabe(3) Then B = 14
    40. Label1.Text = CStr(B) + P
    41. Catch
    42. Label1.Text = "Fehler in Eingabe-Syntax!"
    43. End Try
    44. Protokoll.Add(TextBox3.Text)
    45. Protokoll.Add(TextBox1.Text + PP)
    46. Protokoll.Add(Label1.Text & Chr(10))
    47. Sicher = False
    48. End Sub
    Bitte bitte bitte bitte nichtt!
    Mach das Try Catch weg. Trycatch ist böse! Es gibt Situationen wo anwenden angebracht ist aber doch nicht überal. Trycatch ist nix wo Fehler behebt. Im Gegenteil es verschlimmert sie. Du schiebst das nur weiter. Try Catch raushauen überal wo du das zeug drinnen hast. Oben Option Strict On hinschreiben und dann schauen wir weiter.
    Und nochwas: Anstatt CInt wäre Int32.Parse angebracht. Außerdem was ist der Fehler? Na siehste genau solche Dinge werden bei TryCatch oft verschluckt.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Na siehste das ist ja schon nen Fortschritt. Deshalb macht man das verdammte TryCatch weg weil das Programm zwar nicht abstürtzt aber trotzdem nicht funktioniert und kein Schwein weiß wieso.
    NullReferenceException heißt dass irgendein Objekt auf das du zugreifst nicht im Speicher angelegt worden ist. Sprich nicht mit New ... erstellt worden ist. in welcher Zeile von deinem GEPOSTETEN Code kommt das denn?


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Desweiteren: Wenn Code gepostet wird, der uns ermöglichen soll, zu helfen, sollte auch freundlicherweise dazugeschrieben werden, welche Datentypen die Objekte haben. Vieles kann man sich zusammenreimen, aber ein Reim ist eben nicht immer die Wahrheit.

    Konkret (für das nächste Mal): Welchen Datentyp hat: Eingabe(xx), EingabeTB, P, Sicher, B, PP...