# Exception im Constructor -> null-Referenz zurückgeben



## Tobias (13. Feb 2004)

Wenn im Konstruktor eine Exception ausgelöst wird, die ich dort nicht behandeln kann, will ich eine null-Referenz zurückgeben - mit return geht das aber nicht... Weiß jemand Rat?

mpG
Tobias


----------



## bygones (13. Feb 2004)

gute frage - ich würde eher die geworfene Exception weitergeben - also an die methode, die das Objekt instanzieren will....


```
public class Achnoe {
   public Achnoe() throws Exception {
      // tu irgendwas;
   } 

   public static void main(String[] args) {
     try {
       new Achnoe();
    }
    catch(Exception e) { 
        // shit nicht geklappt;
   }
}
```


----------



## René Link (13. Feb 2004)

Hi,

die Antwort gibt das Singleton-Pattern. Leicht abgeändert kann man
es dann so machen.


```
public class Test {

   private Test(Object someArgument){
      // ...
   }

   public Test newInstance(Object someArgument){
      try{
         // do something
        // if no Exception
        return new Test(someArgument);
      }
      catch(Exception e){
         return null;
      }
   }

}
```


----------



## bygones (13. Feb 2004)

@Rene Link

Wobei das aber der Definition von Singelton nicht ganz entspricht, da man von der Klasse mehrere Instanzen erzeugen kann.

Wenn Singelton (übrigens eine gute Idee), dann so:


```
public class Test { 
   private static Test test = null;

   private Test(Object someArgument){ 
      // ... 
   } 

   public Test newInstance(Object someArgument){ 
      try{ 
         // do something 
        // if no Exception 
        if(test == null) {
            test = new Test(someArgument); 
        }
      } 
      catch(Exception e){ 
         return null; 
      } 
     return test;
   } 
}
```


----------



## Tobias (13. Feb 2004)

Rene, das was du gepostet hast, ist nicht exakt was ich suche, aber ein verdammt guter Denkanreiz! Vielen Dank!

deathbyaclown: Ich bastel an einer Singleton-Klasse, die über eine statische Methode instanziiert wird - weiterreichen ist leider nicht möglich. Hätte ich vielleicht dazusagen sollen ...

mpG
Tobias


----------



## René Link (14. Feb 2004)

deathbyaclown hat gesagt.:
			
		

> @Rene Link
> 
> Wobei das aber der Definition von Singelton nicht ganz entspricht, da man von der Klasse mehrere Instanzen erzeugen kann.
> 
> ...



Hi,

wenn du meins richtig gelesen hättest, hättest du den Satz "Leicht abgeändert kann man 
es dann so machen" bemerkt.
Ich weiß auch das dies kein Singleton ist, aber das Prinzip ist das selbe. Mache den Konstruktor private und lass
die Instanzierung nur über statische Methoden zu. Ob diese dann Bedingungen prüfen und bei gelingen ein
Objekt zurückgeben oder sogar die Anzahl der erzeugten Objekte kontrollieren ist doch erst einmal egal.
Ist nicht böse gemeint, wollte das nur klar stellen.  :lol:


----------



## bygones (14. Feb 2004)

ups, hast recht - habe ich überlesen  :?


----------

