Avatar billede data2k.dk Nybegynder
05. december 2004 - 18:12 Der er 7 kommentarer og
1 løsning

Exception variationer

Jeg har smidt med exceptions på denne måde

public void hey() throws Exception
{
}

og sådan her

try
{
}
catch
{
}

men nu har jeg set noget som dette...

if (index <0 || size < index)
      throw new IndexOutOfBoundsException("Fejl: Ugyldigt index");


altså

throw new IndexOutOfBoundsException()

hmm.. hvad er meningen med sådan en? kørte et program sådan og fik bare denne meddelse

Exception in thread main
java.lang.IndexOutOfBoundsException: Fejl: Ugyldigt index
Avatar billede arne_v Ekspert
05. december 2004 - 18:14 #1
De:

fortæller at en metode kan smide en exception

catcher en exception

smider en exception

3 forskellige ting
Avatar billede data2k.dk Nybegynder
05. december 2004 - 18:18 #2
jeg er ikke helt med.. throws Exception som vist i det første eksempel forstår jeg godt... og try catch forstå jeg også godt... men kan ikke se pointen med

throw new IndexOutOfBoundsException() ...

springer den ud af metoden? eller smider den en exception og fortsætter?
Avatar billede arne_v Ekspert
05. december 2004 - 18:33 #3
Den smider en exception og hopper ud af metoden hvis ikke den catches
Avatar billede jakoba Nybegynder
05. december 2004 - 18:34 #4
Det er faktisk præcis det samme der sker når din try-blok kaster en exception. du ser blot ikke linien
    throw new DivisionByZeroException(...)
fordi det sker bag kulisserne i Java's standardkode.

Men du kan altså også gøre det selv. Som oftest når jeg gør det er det i en catch blok hvor den exception der opstod også kræver lidt håndtering på et højere niveau i programmet

catch ( Exception e ) {
    // skriv stak og debug info
    throw new MinException("Jeg kunne ikke hitte ud af at sælge en billet." );
}

og den vil så igen blive fanget i en overordnet catch-blok
try {  sellTicket( par1, par2 );
      dendBillToCustomer( par2 );
} catch ( MinException e ) {
    // ...
}

mvh JakobA
Avatar billede data2k.dk Nybegynder
05. december 2004 - 18:36 #5
hvordan catcher man den så ?

normalt ville jeg jo skrive try catch og skrive hvilken exception den skal catche i min catch paranteser
Avatar billede arne_v Ekspert
05. december 2004 - 18:38 #6
Helt på samme måde
Avatar billede arne_v Ekspert
05. december 2004 - 18:42 #7
Der er ikke nogen forskel på javas egne og dine exceptions.
Avatar billede arne_v Ekspert
01. januar 2005 - 13:46 #8
OK ?
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
Kurser inden for grundlæggende programmering

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