- sziku69: Fűzzük össze a szavakat :)
- Elektromos rásegítésű kerékpárok
- #95904256: Socket370 / 3DMark2001
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Asszociációs játék. :)
- eBay-es kütyük kis pénzért
- Parci: Milyen mosógépet vegyek?
- Fire/SOUL/CD: INGYENES Clone és Backup-Restore alkalmazások tesztje [2024]
- btz: Internet fejlesztés országosan!
- Tomasz72: Ventilátor upgrade
Új hozzászólás Aktív témák
-
Gregorius
őstag
válasz
ArchElf #1493 üzenetére
Ez nem teljesen ugyanaz. A CLR támogatja az exception filtert, a VB.NET is, a C# nem. Lényeges különbség, hogy míg VB.NET-ben feltétel teljesülése esetén kapod el az exceptiont, C# esetén mindenképpen elkapod. Az exception filter logika a belső finally blokkok előtt fut le, a fenti C#-os megoldás feltétele utána.
-
x007
tag
válasz
ArchElf #1493 üzenetére
Ez más, próbáld ki (false-t fog kiírni)
static bool admin = false;
private static void IAmSoEvil()
{
try
{
DoTheThing();
}
catch(Exception ex)
{
if (true)
{
Console.WriteLine(admin);
}
}
}
private static void DoTheThing()
{
try
{
admin = true;
DoTheAdminThing();
}
finally
{
admin = false;
}
}
private static void DoTheAdminThing()
{
throw new Exception();
}Ha jól értelmeztem a linkedet akkor azt írták, hogy az exception dobása két fázisban történik, először megkeresi a catch ágat, amiben lekezelhető a kivétel, ezért kiértékeli a when függvényt. Második fázisban végrehajtja a finally-ket és a megtalált catch ágat.
Mivel ezek 5 éves cikkek, elképzelhető, hogy ezt a mechanizmust javították már azóta (jogos lenne). Nincs VB-m, hogy kipróbáljam...
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest