/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
En lille Java-quiz
Fra : Jonas Kongslund


Dato : 19-11-04 19:02

Hej

For noget tid tilbage havde vi nogle små quizzer[*] i denne nyhedsgruppe
omhandlende subtile detaljer ved Java-sproget. Det var ret sjovt så for at
gentage successen bidrager jeg i denne omgang med følgende spørgsmål:

Betragt metoden foo() vist forneden.

1. public int foo() {
2. try {
3. return 10;
4. } finally {
5. return 20;
6. }
7. }

Hvad returnerer foo() når den kaldes?

1) Den returnerer ikke noget for metoden kan ikke oversættes!
2) Den returnerer 10
3) Den returnerer 20
4) Der kastes en java.lang.UnknownError


Udtænk svaret i hovedet og post det i denne tråd - vel og mærke inden du
prøver at verificere korrektheden af svaret!


[*]
http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&frame=right&th=479074c61fdc2a8c&seekm=3SxTb.2847%24Ij7.1589%40news.get2net.dk#link1

--
Jonas Kongslund

 
 
Thorbjoern Ravn Ande~ (20-11-2004)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 20-11-04 10:44

Jonas Kongslund <dont@mail.me.at.all> writes:

> 1) Den returnerer ikke noget for metoden kan ikke oversættes!

Mit bud.

Det bør blive fanget ved den anden return-sætning i finally-clausen.
--
Thorbjørn Ravn Andersen
http://unixsnedkeren.dk/ravn

Jonas A. Nielsen (20-11-2004)
Kommentar
Fra : Jonas A. Nielsen


Dato : 20-11-04 23:00

Den returnerer ikke noget, da man ikke kan lave try uden også at bruge
"catch"...?

Mvh
Jonas

"Jonas Kongslund" <dont@mail.me.at.all> wrote in message
news:Tyqnd.2294$H31.1249@news.get2net.dk...
> Hej
>
> For noget tid tilbage havde vi nogle små quizzer[*] i denne nyhedsgruppe
> omhandlende subtile detaljer ved Java-sproget. Det var ret sjovt så for at
> gentage successen bidrager jeg i denne omgang med følgende spørgsmål:
>
> Betragt metoden foo() vist forneden.
>
> 1. public int foo() {
> 2. try {
> 3. return 10;
> 4. } finally {
> 5. return 20;
> 6. }
> 7. }
>
> Hvad returnerer foo() når den kaldes?
>
> 1) Den returnerer ikke noget for metoden kan ikke oversættes!
> 2) Den returnerer 10
> 3) Den returnerer 20
> 4) Der kastes en java.lang.UnknownError
>
>
> Udtænk svaret i hovedet og post det i denne tråd - vel og mærke inden du
> prøver at verificere korrektheden af svaret!
>
>
> [*]
>
http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&frame=right&th=479074c61f
dc2a8c&seekm=3SxTb.2847%24Ij7.1589%40news.get2net.dk#link1
>
> --
> Jonas Kongslund



Jonas Kongslund (21-11-2004)
Kommentar
Fra : Jonas Kongslund


Dato : 21-11-04 01:03

On Lørdag 20 november 2004 23:00, Jonas A. Nielsen wrote:

> Den returnerer ikke noget, da man ikke kan lave try uden også at bruge
> "catch"...?

Det kan man godt.

Det rigtige svar er blandt en af de fire valgmuligheder.

--
Jonas Kongslund

RpR (21-11-2004)
Kommentar
Fra : RpR


Dato : 21-11-04 13:07

Den vil returnere 10, men vil også havne i final og så forsøge at returnere
20. Den kan vel ikke returnere begge dele, så jeg gætter på der går ged i
det.

--

- RpR
MopedGallery - More addictive than heroine
http://www.MopedGallery.dk
ICQ: 19284098
"4-strokes are full of parts, 2-strokes are full of SPEED!"
--



Soeren (21-11-2004)
Kommentar
Fra : Soeren


Dato : 21-11-04 15:59

Jonas Kongslund wrote:
> Hej
>
> For noget tid tilbage havde vi nogle små quizzer[*] i denne nyhedsgruppe
> omhandlende subtile detaljer ved Java-sproget. Det var ret sjovt så for at
> gentage successen bidrager jeg i denne omgang med følgende spørgsmål:
>
> Betragt metoden foo() vist forneden.
>
> 1. public int foo() {
> 2. try {
> 3. return 10;
> 4. } finally {
> 5. return 20;
> 6. }
> 7. }
>
> Hvad returnerer foo() når den kaldes?
>
> 1) Den returnerer ikke noget for metoden kan ikke oversættes!
> 2) Den returnerer 10
> 3) Den returnerer 20
> 4) Der kastes en java.lang.UnknownError
>
>
> Udtænk svaret i hovedet og post det i denne tråd - vel og mærke inden du
> prøver at verificere korrektheden af svaret!
>
>
> [*]
> http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&frame=right&th=479074c61fdc2a8c&seekm=3SxTb.2847%24Ij7.1589%40news.get2net.dk#link1
>


Den returnerer 20

Peter Kjellerup Rasm~ (21-11-2004)
Kommentar
Fra : Peter Kjellerup Rasm~


Dato : 21-11-04 16:56

>
>
> Den returnerer 20
Jeps. Og grunden til dette er at finally segmentet altid bliver kaldt
sidst i en metode. Dette segment kan returnere uden at komme tilbage til
den oprindelige metode og derfor returneres der 20.

Et andet eksempel er fx.
boolean foo(boolean b) {
while (b) {
try {
return true;
}
finally {
break;
}
}
return false;
}
som altid returnerer false.

Desuden er finally ikke afhængig af en try stm. Du kan godt sætte et
finally udtryk ind uden et try stm. Det kan netop give sjov
funktionalitet :)

En uddybende forklaring på finally kan findes her:
http://www.javaworld.com/javaworld/jw-02-1997/jw-02-hood.html

mvh
Peter

Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409079
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste