# Exception werfen



## daniwuII (22. Jun 2004)

Hallo, 

ich möchte gerne bei Eingabe eines negativen oder zu großen Wertes in einem Programm eine Exception werfen (keine eigene).
Wie geht das denn nu wieder.

vielen Dank


----------



## Mick (22. Jun 2004)

```
String deineNachricht = "";
if ( bla bla ) {
  throw new Exception(deineNachricht);
}
```

Grüße,
Mick


----------



## bygones (22. Jun 2004)

z.b.

```
public void eingabe()  {
   int eingabe = .... // woher die eingabe auch immer kommt
   if(eingabe < 0) {
      throws new IllegalArgumentException("Du hast ne negative Zahl eingegeben); // oder was ne andere Exception
   }
   ....
}
```


----------



## P3AC3MAK3R (22. Jun 2004)

Schau mal hier:

http://java.sun.com/docs/books/tutorial/essential/exceptions/throw.html


----------



## L-ectron-X (22. Jun 2004)

Dazu musst Du die throw-Anweisung in einen try-catch-Block einbetten.

```
try {
  Exception ex = new Exception();
  throw ex;
  //Anweisungen die hier stehen, werden nie ausgeführt.
}
catch(Exception e) {
  System.out.println("Wert außerhalb der erwarteten Dimensionen");
}
```
Allerdings ist zu beachten, dass Anweisungen, die unterhalb der throw-Anweisung direkt folgen nie ausgeführt werden.


----------



## bygones (22. Jun 2004)

mal wieder ein paar Auswahlmöglichkeiten  :applaus: 

Wobei zu beachten ist - Exception sollten Ausnahme sein, d.h. so wenige wie möglich verwenden, nur da wo wirkliche Fehler auftreten....


----------



## P3AC3MAK3R (22. Jun 2004)

L-ectron-X hat gesagt.:
			
		

> Dazu musst Du die throw-Anweisung in einen try-catch-Block einbetten.


Nicht unbedingt.

Auch folgender Fall ist möglich:


```
public Object pop() throws EmptyStackException {
	Object obj;

	if (size == 0)
		throw new EmptyStackException();

	obj = objectAt(size - 1);
	setObjectAt(size - 1, null);
	size--;
	return obj;
}
```

Quelle: http://java.sun.com/docs/books/tutorial/essential/exceptions/throw.html


----------



## P3AC3MAK3R (22. Jun 2004)

deathbyaclown hat gesagt.:
			
		

> Exception sollten Ausnahme sein, d.h. so wenige wie möglich verwenden, nur da wo wirkliche Fehler auftreten....


Da kann ich nur zustimmen.

Es ist meist besser, vor einem eventuellen Fehlerfall eine Prüfung durchzuführen und dann ggf. den entsprechenden Code gar nicht ausführen zu lassen.

Beispiel:


```
if (divisor != 0) {
    quotient = dividend / divisor;
else {
    ...
}
```


----------



## L-ectron-X (22. Jun 2004)

@P3AC3MAK3R: Was ist denn mit Dir heute los? Bist ja sonst nicht so redselig... :wink:
PS: Danke für Deinen Hinweis!


----------



## P3AC3MAK3R (22. Jun 2004)

L-ectron-X hat gesagt.:
			
		

> @P3AC3MAK3R: Was ist denn mit Dir heute los? Bist ja sonst nicht so redselig... :wink:


:wink:

Ich habe gerade ein wenig mehr Luft bei der Arbeit als sonst. Ggf. liegt es daran.


----------



## daniwuII (22. Jun 2004)

Vielen Dank für Eure schnelle Hilfe


----------

