Toon posts:

[java]methode met throw-statement

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik snap dat throw statement niet helemaal en ik kom er ook niet echt achter.

De kop van de methode moet als volgt worden:
Java:
1
public void schrijf( String pad, String tekst ) throws IOException{ 


Nu is dat throws IOException nieuw. Gewone exceptions niet overigens, dat try en catch verhaal ken ik wel.

Ik moet in de methode dus een throw exception schrijven, dus ik schrijf er een regeltje in van:

Java:
1
2
3
if( tekst == null ){
            throw new IOException();
        }


want ja, dan gaat het immers mis.

Maar als ik de methode nu vanuit een andere klasse aan ga roepen, dan zegt ie:
no error handling for exception, exception type is 'class java.io.IOException'.

Logisch denk ik, ik moet er zoiets van maken:
Java:
1
2
3
4
5
6
try{
            io.schrijf( pad, tekst );    
        }
        catch( IOException e ){
            e.printStackTrace();
        }


Maar dat is blijkbaar niet goed.

Hoe ik het wel moet doen zie ik ook hier nergens staan.

In het boek wat ik hier heb wordt er al helemaal niet over gerept. GoT-search bood me niet het verlossende antwoord, en zelfs als ik op google aangeef alleen engelstalige sites te willen vinden kreeg ik enkel franse en duitse sites. Ik snap nog meer van vrouwen dan van die twee talen :'(

Dus vandaar nu mijn schreeuw om help...
Hoe moet ik dat in hemelsnaam doen met die throw. Elke keer als ik het gevonden heb, blijk ik het omzijld te hebben of komen er zesduizend foutmeldingen.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17-08 23:56

Janoz

Moderator Devschuur®

!litemod

In principe is de code die je hebt gegeven goed. Dat extra "throws Exception" erachter geeft aan dat je het probleem niet binnen die methode op wilt lossen, maar door de aanroeper. Je gooit 'm zeg maar verder.

Wat gaat er precies mis bij het laatste stukje? (die met de try catch er omheen) Die zou namelijk goed moeten zijn.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Laat maar, vergeten de java.io.*; library te importeren in de hogere klasse |:(
Van die dingen die je niet zo snel opvallen als je met iets bezig bent waarvan je niet zeker weet of het inderdaad zo werkt.

Toch bedankt voor het antwoord.

[ Voor 8% gewijzigd door Verwijderd op 30-06-2003 13:35 ]


  • Bobco
  • Registratie: Januari 2001
  • Laatst online: 30-10-2023

Bobco

I used to dream about Verona.

Misschien een beetje zeikerig: maar waarom gooi je een IOException? Als tekst niet null mag zijn is het naar mijn smaak eerder een IllegalArgumentException. Voor de werking van je programma maakt het niets uit, maar je maakt er wel duidelijker mee dat het niet de bedoeling is om schrijf(pad, tekst) aan te roepen met een null waarde voor tekst.....

With the light in our eyes, it's hard to see.


Verwijderd

Topicstarter
Bobco schreef op 30 June 2003 @ 13:53:
Misschien een beetje zeikerig: maar waarom gooi je een IOException? Als tekst niet null mag zijn is het naar mijn smaak eerder een IllegalArgumentException. Voor de werking van je programma maakt het niets uit, maar je maakt er wel duidelijker mee dat het niet de bedoeling is om schrijf(pad, tekst) aan te roepen met een null waarde voor tekst.....
Ja, dat klopt misschien wel, al kan het feit dat de tekst gelijk aan null is misschien wel door een fout in de IO komen. Maar hoe dan ook, de header van de methode is me gegeven, dus het is in dit geval niet aan mij om er af te stappen.