uitle throw en throws

Status
Niet open voor verdere reacties.

Clemens Schalkw

Gebruiker
Lid geworden
5 dec 2007
Berichten
166
uitleg throw en throws

Ik ben Java aan het leren en kom iets tegen over throw en throws.
Nu kom ik daarover tegen dat je throws gebruikt bij het maken van je class, dus dan krijg je:

Code:
public void myClass() throws anyException {
     // code here
}

Vervolgens gooi (throw) je die exception "als er iets gebeurt" :

Code:
public void myClass() throws anyException {
   if (somesthingHappens) {
      throw new anyException();
   }
}

Ik snap niet helemaal wanneer je dit wel en niet moet doen, want onderstaande code werkt goed zonder dat ik ergens een Exception declareer:

Code:
import javax.sound.midi.*;
public class MusicTest1 {
	
	public void play() {
		
		try {
			Sequencer sequencer = MidiSystem.getSequencer();
			System.out.println("We got a sequencer");
			
		} catch(MidiUnavailableException ex) {
			System.out.println("Bummer");
			
		} // close try/catch
		
	} // close play
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		MusicTest1 mt = new MusicTest1();
		mt.play();
		
	} // close main

} // close class (MusicTest1)
 
Laatst bewerkt:
Dat is het verschil tussen een eigen error en een error die standaard in JAVA zit, voor zover ik weet. Die methode MidiUnavailableException() komt gewoon uit import javax.sound.midi.*;.

En wat jij doet werkt ook niet, lijkt me:

Code:
public void myClass() throws anyException {
   if (somesthingHappens) {
      throw new anyException();
   }
}

Je declareert nergens die anyException().
 
Wat ik als code had gegeven is puur een voorbeeld, ik snap dat het niet kan werken.

Maar wat ik niet snap is dan dat je dus blijkbaar een eigen exception kan schrijven.
Hoe moet zoiets er dan uitzien?
Is dat een eigen class of method?
 
Dat stop je vaak in een eigen Exception-class. In die class zitten door jou geschreven exceptions, vaak zijn dat exceptions die niet standaard in JAVA zitten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan