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. ?
Annonceindlæg fra Kingston Technology
25. februar 2003 - 10:53
#1
Hvilken exception? Der kan jo gå meget galt i din try blok!
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 :/
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.
25. februar 2003 - 11:08
#4
Præcis !
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); } } } } -------------
25. februar 2003 - 11:16
#6
Hvilken type er din exception? catch( Exception exp) { Response.Write( exp.GetType().ToString() ); }
25. februar 2003 - 11:19
#7
System.FormatException
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!
25. februar 2003 - 11:36
#9
Ikke for at være på tværs :) Men den fjerner ganske fint "-" i strengen...
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("-", "");>
25. februar 2003 - 11:54
#11
ah, ja okay. Det var så en fejl, havde ikke set at du havde "-" med i strengen!
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!
25. februar 2003 - 12:02
#13
Hmm, jeg begynder at tro at det ikke er koden der er fejl :)
25. februar 2003 - 12:31
#14
Jeg lukker det igen... Genstartede IIS'en og så kørte det. Top underligt! Takker for ihærdigheden!
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.