Kezdőoldal » Számítástechnika » Programozás » C#: return null vagy throw...

C#: return null vagy throw exception?

Figyelt kérdés
Írtam egy függvényt, aminek a bejövő paramétere egy térbeli vektor és a függvény visszatérő értéke egy erre a vektorra merőleges vektor (lényegtelen a konkrét iránya). Ha a megadott vektor hossza nulla, akkor a függvényem null referenciával térjen vissza, vagy inkább dobjon hibát? Mi a szokás ilyenkor és miért? Milyen szempontok vannak?

2013. okt. 31. 11:51
 1/4 anonim ***** válasza:
Inkább exeption. A return null nem olyan szép.
2013. okt. 31. 11:57
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:
100%

A fő szempont, hogy hol és hogyan akarod kezelni a hibát, ill. hogy valóban hiba-e, vagy csak egy infó a hívónak.


Ha nullt adsz vissza, azt csak a hívó fél fogja tudni kezelni, de ha kivételt dobsz, akkor az felfelé fog adódni a kivételkezelő hierarchián, amíg valaki nem kezeli.

2013. okt. 31. 12:40
Hasznos számodra ez a válasz?
 3/4 iostream ***** válasza:

Ahogy a második mondja. Kivételt akkor érdemes dobni, ha 1) ez tényleg egy hiba, egy kivételes esemény 2) nem tudod, hogy a hívó fél tudja-e kezelni azt.

Egy nullvektor önmaga normálisa, tehát akár visszaadhatod önmagát (vagy egy másolatát) is, ez nem egyértelmű. Neked kell eldönteni, hogy ez nálad hibaesemény-e.

Megközelítheted a klienskód szempontjából is, mert valószínűleg nem egy nagy általános libet írsz: amikor merőleges vektort számoltatsz, milyen megoldás lenne a praktikusabb nullvektor esetén?

2013. okt. 31. 13:27
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:

Köszi a válaszokat!


Lehet akkor inkább a hiba dobós verzió lesz. Ki tudja a jövőben ki mire akarja majd használni a kódomat. Mondjuk nem konkrétan a feladatra levetítve érdekelt az elv, hanem általánosságban is.

2013. okt. 31. 19:02

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!