| 

.NET C# Java Javascript Exception

3
Wenn ich im Konstruktor Resourcen initialisiere aber weiter im selben Konstruktor ein Exception geschmissen wird weil eine Anforderung nicht erfüllt wurde was passiert mit diesen Resourcen die ich normalerweise in der Dispose-Methode freigeben würde? werden sie freigegen automatisch oder habe ich an dieser Stelle ein Speicherleck?
News:
04.04.2011
pinchbeck 373 1 8
1 Antwort
2
Deine Frage kann ich nicht hundertprozentig beantworten, aber ich würde sicher erwarten, dass die Resourcen nicht automatisch freigegeben werden.
Mein erster Gedanke war folgender:
Die Aufräumarbeiten der Resourcen hast du doch bestimmt in einer Methode, die von der Dispose-Methode aufgerufen wird. Wenn du im Konstruktor einen try - catch Block hast, kannst du im Fall einer Exception den ResourcenAufräumTask aufrufen.

Eine kurze Suche nach Konstruktor und try - catch brachte mich dann auf diese Seite: try...catch in constructor

Vielleicht hilft dir das weiter.

Edit:

Hier ist dein Fall explizit aufgeführt:
Das Dispose-Pattern zur Ressourcenfreigabe in .NET
Siehe Abschnitt: Ressourcenbelegung durch den Konstruktor
04.04.2011
Jürgen Luhr 7,1k 2 9
schade, ich hatte eigenglich eine andere antwort erwartet ;] aber die beantwortet meine Frage natürlich auch nur, dass sie meine Befürchtungen bestätigt :( ich hatte gehofft, dass im Falle eines Konstruktors das anders als sonst funktioniert und die Resourcen auchtomatisch freigegeben werden. dann muss ich also doch mit try-catch arbeiten. thx.
pinchbeck 04.04.2011

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH