06. januar 2002 - 16:31Der er
8 kommentarer og 1 løsning
Et lille forholdsvist let sprøgsmål for JavaKendere!
Hvis jeg har en String (fx. String Journal_nummer = \"C-002\") hvordan tjekker jeg så at pladsnummer 2(eller plads nr. 1, hvis man tæller som computeren når plads nr. 1 egentlig er plads nr. 0 bla bla bla..;) ) er lig en bindestreg?? og evt. smider det ind i en exception så hvis den ikke er en bindestreg skal den melde fejl og sige \"Hov du der!, der skal være en bindestreg på plads nr. 2!!
// Hent bogstav ud i variabel char ch = journal_nummer.charAt(1);
// Test på om char er samme som \'-\' (bindestreg) if (ch != \'-\') { // Meddel fejl !!! System.out.pritnln(\"DER SKAL VÆRE BINDESTREG PÅ PLADS 2\"); } else { // 2. tegn var bindestreg :-) System.out.println(\"Alt er OK\"); }
Ønsker du explicit at der skal kastes en exception...
(* igang med at greje, hvordan man kan føre den test over til en try/catch-blok - Er ikke så ferm til det med exceptions - bruger dem kun når der absolut er behov *)
Hvis alt held er ude med en exception kan jeg nøjes med din løsning, men foretrækker en exception...Personligt synes jeg den virker mere optiomalt, hvis man eller kan få det til at virke ;)
class UgyldigtJournalNummerException extends Exception { public UgyldigtJournalNummerException() {} }
på den klasse, som journal_nummer er i, laver du så en metode
void testJournalNummer throws UgyldigtJournalNummerException { if ( journal_nummer.charAt(1) != \'-\' ) throw new UgyldigtJournalNummerException(); }
i koden, hvor du vil teste om journalnummeret er gyldigt skriver du så ... try { testJournalNummer(); } catch (UgyldigtJournalNummerException ujnEx) { }
/Søren
PS: jeg synes det er en lidt stor ombæring, bare for at checke om der er \'-\' i 2. position på variablen, men måske er det bare mig, som ikke koder det ordenligt - Jeg er er forholdsvis ny til Exceptions
Det betyder, at i testen ... if ( journal_nummer.charAt(1) != \'-\' ) throw new Exception(); ... kaster jeg en Exception af typen \'Exception\'
umiddelbart efter, i catch-blokken, fanger jeg denne Exception (af typen \'Exception\') igen ved at skrive ... catch( Exception ex ) ... hvis denne fanges/gribes, føres denne ind i variablen ex.
Personligt synes jeg at det er en gevaldig omvej, at bruge en Exception til at \'opdage\' om der ikke er \'-\' i 2. position...
Mit råd er : hvis du ikke _explicit_ har brug for at der skal kastes exception, så brug mit første løsningsforslag - IMHO er det bedst....
Tak Søren tjek lige kommentar over dig...Plz svar på det Spørgsmål.....Så er point\'ne dine Har lavet det nemlig brugt lidt fra din Exception løsning nr. 1
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.