# Exception im Konstruktor



## Leyja (15. Dezember 2007)

Hallo, 

ich habe jetzt die letzten Tage an einer Hausaufgabe in Java gesessen, wo ich Exceptions anwenden sollte. Ich sollte unter anderem eine neue Exception-Klasse erstellen und die dann in einer anderen Klasse anwenden, wenn ich das ganze richtig verstanden habe, musste die Exception dann im Konstruktor geworfen werden. 
Das sieht bei mir nun so aus: 

public VariablesFeld(int anzahl) throws IllegalInitialSizeException { 
if (anzahl <= 0) {
      throw new IllegalInitialSizeException("Bitte " 
                + "keine negativen Zahlen eingeben");
      }
instanz = new Object[anzahl];
}

Wenn ich dann in der Main-Methode eine Instanz dieser Klasse aufrufe, eine negative Zahl übergebe und das in einen try&catch-Block packe, funktioniert das auch alles so wie ich will. 

Mein Problem ist jetzt, dass ich auch in anderen Klassen eine Instanz von diesem Objekt benötige. Die ist als Klassenattribut deklariert: 
public static VariablesFeld elemente = new VariablesFeld(1);

Jedoch meckert hier jedes Mal Eclipse, dass die Exception nicht behandelt worden wäre. 

Gibt es eine Möglichkeit, das auch irgendwie da abzufangen? 


Ich hoffe, hier kann mir jemand helfen :-/ Ich muss die Aufgabe morgen abgeben und bin langsam echt am Verzweifeln. Habe schon andere Leute gefragt, aber leider wussten die da auch nicht weiter. Geht mir auch weniger darum, dass mir jemand die Hausaufgaben macht, sondern auch, dass ich das ganze Drumherum mit den Exceptions etwas verstehe und das ist so das einzige Problem, wo ich einfach gar nicht weiß, wie ich es angehen soll.


----------



## zeja (16. Dezember 2007)

Also gehen tuts folgendes:


```
public static VariableField field;
		static{
			try {
				field = new VariableField(1);
			} catch (IllegalInitialSizeException e) {
				e.printStackTrace();
			}
		}
```

Allerdings glaube ich nicht dass das so gedacht ist. Ist es wirklich nötig dass das Feld static ist? Ansonsten könntest du es im Konstruktor der Klasse initialisieren und die Exception entsprechend besser behandeln.


----------

