Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Nije mi jasno kako kompajler radi sa try ,catch, finally...kojim redom ide

[es] :: .NET :: Nije mi jasno kako kompajler radi sa try ,catch, finally...kojim redom ide

[ Pregleda: 1967 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Slavica989
student,fakultet organizacionih nauka

Član broj: 272939
Poruke: 3
*.dynamic.isp.telekom.rs.



Profil

icon Nije mi jasno kako kompajler radi sa try ,catch, finally...kojim redom ide15.04.2012. u 23:04 - pre 146 meseci
Molim vas recite mi sa se ispisuje na ekranu i objasnite mi korak po korak kako radi kod ...
Code (csharp):

try
{
string naziv = "FON";
try
{
int broj = Convert.ToInt32(naziv);
Console.Write(7);
}
catch (DivideByZeroException)
{
Console.Write(6);
}
catch (Exception)
{
Console.Write(5);
}
finally
{
Console.Write(4);
}
Console.Write(3);
}
catch (FormatException)
{
Console.Write(2);
}
finally
{
Console.Write(1);
}
 


[Ovu poruku je menjao Aleksandar Ružičić dana 17.04.2012. u 23:51 GMT+1]
 
Odgovor na temu

Dejan Carić
Oslo, Norway

Član broj: 230976
Poruke: 232
82.117.199.*

Sajt: www.dcaric.com


+26 Profil

icon Re: Nije mi jasno kako kompajler radi sa try ,catch, finally...kojim redom ide18.04.2012. u 09:20 - pre 146 meseci
Ispisuje se 5 4 3 1 :)

Linija 6 baca Format Exception: int broj = Convert.ToInt32(naziv);
Ne izvršava se linija 7 zbog pomenute greške: Console.Write(7);
Nego se ide na neki od unutrašnjih catch blokova.
Linija 9 se preskače pošto greška nije tog tipa: catch (DivideByZeroException)
Linija 13 se izvršava jer catch (Exception) hvata sve greške
Finally blok na liniji 17 se uvek izvršava bez obzira da li je prethodno bačena greška ili ne: finally { Console.Write(4); }
Kod se normalno izvršava na liniji 21 jer je greška već obrađena u unutrašnjem try/catch bloku: Console.Write(3);
Linija 23 se neće izvršiti jer je greška već obrađena u unutrašnjem try/catch bloku: catch (FormatException) { Console.Write(2); }
Poslednji finally blok se uvek izvršava bez obzira da li je bilo greške ili ne: finally { Console.Write(1); }

Jasnije?
 
Odgovor na temu

[es] :: .NET :: Nije mi jasno kako kompajler radi sa try ,catch, finally...kojim redom ide

[ Pregleda: 1967 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.