Exception Verständnisfrage: Exceptions während, einer Statischenzuweisung abfangen

  • Themenstarter Themenstarter Apokalypse
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
A

Apokalypse

Gast
Hallo zusammen,

ich habe eine Verständnisfrage in Sachen Exception Handling.
So vorerst mal zur Info:

Ich habe eine pseudo Klasse(LicenceRepository) vorbereitet.
Der Private Konstruktor dieser Klasse, könnte eine Exception auslösen.

So jetzt zu meiner Frage, ist es möglich in der Zeile:
static final LicenceRepository instance = new LicenceRepository();
eine Exception abzufangen ?

Pseudo Klasse:
Java:
public class LicenceRepository implements Repository {

	//Wie kann ich hier eine Exception fangen? Oder geht das gar nicht?
	static final LicenceRepository instance = new LicenceRepository();
	
	private LicenceRepository() throws Exception
	{	
		this.licences = new HashMap<Long, Document>();
		this.currentlySyncronized = false;
		Configuration.defaultConfiguration();
	}

	...

	public static Repository getInstance() throws Exception {
		return InstanceContainer.instance;
	}

}

Ich danke schon mal.
Gruß der Apo
 
[c]throws Exception[/c] ist imho ganz böse in so einem Fall, solltest konkret werden, am besten mit der passenden Unterklasse einer RunTimeException.

Anderfalls könntest du einen statischen Block machen:
Java:
static final LicenceRepository instance;
static {
    try {
        instance = new LicenceRepository()
    } catch (KonkreteException ex) {
      // tue was sinnvolles mit der Exception... ?
    }
}
Ist aber weder schön noch gut...

Ach ja, Singletons sind böse...
 
LazyInitialisation gibts auch noch:

Java:
   Y x = null;
	public static Y getX() throws Exception {
              if (x == null)
                 new Y();
              }
	      return x;
	}
 
Danke für eure Antworten.

Ich gebe euch in dem besagten Recht.
Singelton ist nicht das all Heilmittel und kann Probleme mit sich bringen.
Haben aber ihre exestenz Begründung:

Genau wie, bygones meinte, ich benötige nur eine Instanz der Klasse.
(Und bekomm ich jetzt, dein Monatsgehalt?)
Zur Info, die Klasse wird später in einem WebContainer laufen und
dort werden mehrer Servlets auf diese Klasse zugreifen.(Gemeinsame Datenhaltung, muss diverse Daten im Speicher halten)
Daher benötigte ich eine Threadsicheres Singleton.
Das sind meine Bewegründe für ein Singleton.

Wie gesagt danke für eure Antworten.
 
Danke für eure Antworten.

Ich gebe euch in dem besagten Recht.
Singelton ist nicht das all Heilmittel und kann Probleme mit sich bringen.
Haben aber ihre exestenz Begründung:

Genau wie, bygones meinte, ich benötige nur eine Instanz der Klasse.
(Und bekomm ich jetzt, dein Monatsgehalt?)
Zur Info, die Klasse wird später in einem WebContainer laufen und
dort werden mehrer Servlets auf diese Klasse zugreifen.(Gemeinsame Datenhaltung, muss diverse Daten im Speicher halten)
Daher benötigte ich eine Threadsicheres Singleton.
Das sind meine Bewegründe für ein Singleton.
Deine Begründung bestätigt bygones & meinen Verdacht: Missbrauch des Singleton Muster als globale Variable. Eigentlich brauchst du hier kein GoF Singleton...

Naja, hoffe mal dass du zumindest von [c]throws Exception[/c] abgekommen bist 😉
 
Keine Angst, das mit dem throws Exception, ist in Wahreit eine RepositoryException war nur nen Beispiel.(Aus reiner Faulheit)
Ihr rattet mir davon ab, also könntet ihr mir Alternativen nennen ?

Gruß Apo
 
Keine Angst, das mit dem throws Exception, ist in Wahreit eine RepositoryException war nur nen Beispiel.(Aus reiner Faulheit)
Hey, wenn du anderen Code postest bekommst du andere Tipps 😉

Ihr rattet mir davon ab, also könntet ihr mir Alternativen nennen ?
Alternativen zum Singleton?
Dependency Injection vielleicht? 😉
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben