Hogyan szokás használni a try-catch blokkot?
Van értelme kiszervezni a try blokkban levő kódot egy másik metódusba csak azért, hogy átláthatóbb legyen az egész?
Próbálok mutatni egy kis pszeudokódot:
Alapeset:
Metódusszignatúra()
{
// Kódok...
}
Kivételkezelés:
Metódusszignatúra()
{
...try
...{
......// kódok
...}
...catch
...{
......// teendők kivétel esetén
...}
}
Ennek van-e értelme:
Metódusszignatúra()
{
...try
...{
......// Kódok()
...}
...catch
...{
......// teendők kivétel esetén
...}
}
Kódok() {}
Amikor try-catch blokkot használok, akkor alapvetően az szokott lenni a problémám vele, hogy egy hosszú katyvasz az egész, nem átlátható, nem áll rá a szem a lényegre. Persze lehet, hogy barom módon használom.
Sajnos konkrét példa nélkül nehéz megmondani.
Nyilván van olyan eset amikor ez működik, mármint inkább úgy mondom, hogy haszon így csinálni. Sőt a try részbe általában "kevés" sor szokott lenni. De csak eztért nem kell kiszervezni szerintem egy metódusba.
De tényleg egyszerűbb lenne konkrét esetre tanácsot mondani.
Például egy ilyet (C#):
List<string> list = new List<string>();
using (StreamReader reader = new StreamReader(Path.Combine(fPath,
currentFile)))
{
while (!reader.EndOfStream)
{
list.Add(reader.ReadLine());
}
}
return list;
Igen, elsőre nem úgy sikerült. :D Nem is én lennék.... :D
Akkor általában nem kell kiszervezni a try tartalmát egy külön metódusba?
Úgyis arra törekszik az ember, hogy egy metódusnak 1 feladata legyen, talán ennél sokkal hosszabb kódok nemigen vannak.
A többiek azt elfelejtették mondani, hogy az exception dobásával és kezelésével sokkal egyszerűbb ott csinálni a hibakezelést, ahol akarod.
Értem ezt úgy, hogy ha egy függvényben három helyen kéne hibát csekkolni, akkor te megteheted azt a függvényen kívül, elkapva a kivételeket. De ennek akkor van több értelme, ha egy szekvenciában mondjuk több error keletkezhet ("Kódok" nevezetű rész a példádban)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!