none
Zahlen Bereichsprüfung try catch ArgumentOutOfRangeException RRS feed

  • Frage

  • Hallo an alle,

    ich möchte eine bestimmte Zahlenbereich überprüfen:

                Version= "-99";
    
             /*   if ((Int32.Parse(Version) > 0) && (Int32.Parse(TestVersion) < 9)) {
                    Schlussel.Append(TestVersion);
    
                } else {
                    throw new ArgumentOutOfRangeException("Bitte geben Sie eine Versions 1 bis 9 ein!");
                }*/
    
                 try {
                    if ((Int32.Parse(Version) > 0 ) && (Int32.Parse(Version) < 9)) {
                        Schlussel.Append(Version);
                    }
    
                } catch (ArgumentOutOfRangeException outOfRange) {
                   MessageBox.Show("Bitte geben Sie eine Versions 1 bis 9 ein!", outOfRange.Message);
                }

    Meine Frage ist ich habe eine Zahl Version = -99; eingegeben und das Programm sollte im catch sagen das die Bereich überschritten wurde. Aber er kommt bis zu catch aber gibt die Message nicht aus?

    Was mache ich den eigentlich Falsch?

    Mittwoch, 11. September 2013 08:43

Antworten

  • Hi,

    wo wird denn in deinem Code die Exception (und dazu eine vom Typ ArgumentOutOfRangeException) ausgelöst? Der relevante Code in deinem Beispiel ist ja auskommentiert.

    Füg mal den else Zweig des auskommentierten Statements in den try Zweig des Codes ein. Dann sollte das auch gehen. Alternativ schreib einfach den Teil mit MessageBox.Show( ... ) als else Zweig, in dem Fall musst Du aber outOfRange.Message weglassen, da es kein outOfRange Objekt gibt.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    • Als Antwort markiert TaMBeY Mittwoch, 11. September 2013 09:51
    Mittwoch, 11. September 2013 09:06
    Moderator

Alle Antworten

  • Hi,

    wo wird denn in deinem Code die Exception (und dazu eine vom Typ ArgumentOutOfRangeException) ausgelöst? Der relevante Code in deinem Beispiel ist ja auskommentiert.

    Füg mal den else Zweig des auskommentierten Statements in den try Zweig des Codes ein. Dann sollte das auch gehen. Alternativ schreib einfach den Teil mit MessageBox.Show( ... ) als else Zweig, in dem Fall musst Du aber outOfRange.Message weglassen, da es kein outOfRange Objekt gibt.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    • Als Antwort markiert TaMBeY Mittwoch, 11. September 2013 09:51
    Mittwoch, 11. September 2013 09:06
    Moderator
  • Danke Stefan.
    Mittwoch, 11. September 2013 09:52