05. december 2006 - 23:47Der er
5 kommentarer og 1 løsning
try/catch - hvor catch skal lukke/genstarte programmet?
Jeg har et lille program (uden GUI), der laver beregninger med brøker. I konstruktoren er der så lavet en try/catch der fanger (ArithmeticException e), men det er jo bare ikke nok, for programmet kan kører videre.
Så enten skal konstruktoren startes forfra (højeste ønske), eller også skal programmet lukke helt ned.
Min konstrucktor: ################################################### public Brøk(int enT, int enN) { try { int temp = enT/enN; } catch (ArithmeticException e) { System.err.println("Fejl"); } tæller = enT; nævner = enN; } ###################################################
En finally{ } er vel nok det bedste at bruge, men kan bare ikke finde ud af, hvad der kan genstarte konstruktoren eller stoppe programmet helt.
Hmm, har lige fundet ud af, at finally{ } bliver kørt uanset hvad, så den er nok alligevel ikke smart at bruge. Så koden der skal genstarte/lukke programmet, skal vel stå i catch{ }
if(enN == 0) // Hvis nævneren er lig med "0", bliver der "kastet" en fejl, { // og det oprettet objekt lukkes ned. // En bruger venlig fejlmeddelelse udskrives til brugeren. throw new ArithmeticException("\n----------------------------------------" +"\n| Fejl: -> \"0\" i naevneren |" +"\n| Objektet kunne ikke oprettes |" +"\n----------------------------------------"); ##################################################################################
Andre objekter der er "startet" blive ikke berørt af dette, hvilket de gjorde med System.exit(0); hvor hele VM blev genstartet, hvilket i dette tilfælde ikke var særlig godt.
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.