Avatar billede lajer Nybegynder
25. februar 2003 - 10:51 Der er 13 kommentarer og
1 løsning

går igennem try men også catch ?

Hejsa, sidder med et lidt underligt problem!

Jeg laver følgendende for at chekke om en string kan converteres til en integer.

  try
  {
    string intCheck = PostalCodes[x];
    intCheck = intCheck.Replace("-", "");
    Convert.ToInt32( intCheck );
    Response.Write(intCheck + "<br>");
  }
  catch( Exception exp)
  {
    Response.Write( exp.ToString() );
  }

Strengen jeg prøver at konvertere kunne eks. indeholde 2000-3000

try virker også ganske glimrende, men selv om at den virker så går den alligevel videre til catch og udskriver en exception. ?
Avatar billede z42cool Nybegynder
25. februar 2003 - 10:53 #1
Hvilken exception? Der kan jo gå meget galt i din try blok!
Avatar billede lajer Nybegynder
25. februar 2003 - 10:55 #2
Følgende Exception bliver udskrevet: "Input string was not in a correct format."

Hvilket burde give fin mening, men ikke lige idag :/
Avatar billede z42cool Nybegynder
25. februar 2003 - 11:07 #3
Så hvis din streng f.eks. er 2000-3000 udskrives altså:

2000-3000
Input string was not in a correct format.
Avatar billede lajer Nybegynder
25. februar 2003 - 11:08 #4
Præcis !
Avatar billede neuro Nybegynder
25. februar 2003 - 11:13 #5
Det her virker fint hos mig

-------------
using System;

namespace intCheck {
   
    class program {
       
        static void Main(string[] args)    {
           
            string intCheck=args[0];
            intCheck=intCheck.Replace("-","");

            try {
                int myInt=Int32.Parse(intCheck);               
                Console.WriteLine("int convertion succesfull ("+myInt+")");
            } catch (Exception e) {
                Console.WriteLine(e.Message);
            }

        }

    }

}
-------------
Avatar billede z42cool Nybegynder
25. februar 2003 - 11:16 #6
Hvilken type er din exception?

catch( Exception exp)
  {
    Response.Write( exp.GetType().ToString() );
  }
Avatar billede lajer Nybegynder
25. februar 2003 - 11:19 #7
System.FormatException
Avatar billede z42cool Nybegynder
25. februar 2003 - 11:32 #8
Det er fordi bindestregen ikke bliver fjernet fra din input streng inden du kalder Convert.ToInt32. Jeg har dog ikke lige noget bud på hvorfor Replace ikke gør det!
Avatar billede lajer Nybegynder
25. februar 2003 - 11:36 #9
Ikke for at være på tværs :)

Men den fjerner ganske fint "-" i strengen...
Avatar billede z42cool Nybegynder
25. februar 2003 - 11:49 #10
Men du svarede tidligere ja til at den udskrev:

2000-3000
Input string was not in a correct format.

Der er - jo ikke fjernet, på trods af at du udskriver <intCheck> efter <intCheck = intCheck.Replace("-", "");>
Avatar billede lajer Nybegynder
25. februar 2003 - 11:54 #11
ah, ja okay. Det var så en fejl, havde ikke set at du havde "-" med i strengen!
Avatar billede z42cool Nybegynder
25. februar 2003 - 11:59 #12
Jeg må indrømme at jeg ikke kan få min maskine til at reproducere fejlen, følgende:

using System;

public class App
{

    public static void Main()
    {
        try
        {
            string intCheck = "2000-3000";
            intCheck = intCheck.Replace("-", "");
            Convert.ToInt32( intCheck );
            Console.WriteLine(intCheck);
        }
        catch( Exception exp)
        {
            Console.WriteLine( exp.ToString() );
        }
    }
}

Kører helt uden problemer!
Avatar billede lajer Nybegynder
25. februar 2003 - 12:02 #13
Hmm, jeg begynder at tro at det ikke er koden der er fejl :)
Avatar billede lajer Nybegynder
25. februar 2003 - 12:31 #14
Jeg lukker det igen... Genstartede IIS'en og så kørte det.

Top underligt!

Takker for ihærdigheden!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester