daTom Geschrieben 16. Oktober 2008 Teilen Geschrieben 16. Oktober 2008 Hallo, ich versuche gerade die using-Anweisung in C# zu verstehen. Als kleines Testszenario habe ich mir folgendes ausgedacht: protected OracleConnection OpenConnection() { using (OracleConnection conn = new OracleConnection()) { conn.ConnectionString = this.ConnectionString; conn.Open(); return conn; } } Wenn ich das richtig verstanden habe, sollte doch die using Anweisung dafür sorgen, dass die Dispose-Methode von OracleConnection aufgerufen wird, auch wenn eine Exception nicht gefangen wird?! In meinem kleinen TestCase ist der ConnectionString einfach "...". Das Ergebnis ist allerdings, dass über die nicht gefangene Exception gemeckert wird. Kann mir mal jemand auf die Sprünge helfen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 16. Oktober 2008 Teilen Geschrieben 16. Oktober 2008 Das Ergebnis ist allerdings, dass über die nicht gefangene Exception gemeckert wird. Was meinst du damit? Du fängst die Exception ja nicht ab also wird sie dir auch angezeigt Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Argbeil Geschrieben 17. Oktober 2008 Teilen Geschrieben 17. Oktober 2008 Aus: using ( lalala instance = new lala() ) { ... } wir folgender Code generiert: try { lalala instance = new lalala(); } finally { instance.Dispose(); } Das hat mit Excecption-Handling also erstmal nichts zu tun, sondern sorgt nur das für dass - egal was passiert - Dispose aufgerufen wird. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
daTom Geschrieben 21. Oktober 2008 Autor Teilen Geschrieben 21. Oktober 2008 Hallo Argbeil, danke für die Erklärung. Jetzt ist es doch um einiges klarer. Gruß daTom Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.