Veröffentlicht 16. Oktober 200816 j 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?
16. Oktober 200816 j 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
17. Oktober 200816 j 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.
21. Oktober 200816 j Hallo Argbeil, danke für die Erklärung. Jetzt ist es doch um einiges klarer. Gruß daTom
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.