[ Valerij Zajcev @ 24.11.2010. 09:32 ] @
| Da li ce ovako napisana f-ja da vraca vrednosti iz catch-a ili ce uvek vracati '1' bez obzira i ako pukne?
Code:
try
{
// nesto sto moze da pukne
}
catch (DataPortalException ex)
{
if (ex.Message.Length > 50)
return -1;
else
return -1;
}
catch (Exception ex)
{
if (ex.Message.Length > 50)
return -2;
else
return -2;
}
return 1;
|
[ Boris B. @ 24.11.2010. 09:56 ] @
Nece uvek vracati 1, vratice vrednost prvog "return"-a na koji naleti, C# return je uvek momentalni izlaz iz metoda. Mozda jedino te buni ako si pre radio u npr. Paskalu gde setovanje Result promenljive ne znaci izlaz iz funkcije.
BTW nadam se da je ovaj "svi putevi vode u Rim" konstrukt (if uslov return -1 else return -1) samo demonstracija a ne i pravi kod.
[ markoco @ 25.11.2010. 13:21 ] @
Broj 1 (jedan) ce vracati samo ako try prodje bez greske. A ostalo zavisi od toga koji Exception je "bacen" ... Tj. ako u kodu imas gresku vezanu za "DataPortal" vratice ti -1, a ako je greska globalna vraca ti broj -2.
BTW, kao sto je Boris B. rekao, vratice prvi "return" na koji naidje jer je to komanda za izlazak.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.