Autor | Zpráva | ||
---|---|---|---|
Hologos Profil |
#1 · Zasláno: 26. 7. 2010, 19:04:27 · Upravil/a: Hologos
Zdravím,
chci se zeptat, zda-li se má psát @throws Exception u všech metod, které volají nějakou validaci a ta, když selže, hodí vyjímku. Příklad /** * Validates input. * * @param mixed $input * @return void * @throws Exception if validation fails. */ public function validate($input) { // validace if(!$valid) throw new Exception('aa'); } /** * Prints the message. * * @param string $message * @return void * @throws Exception if $message is not a valid string. */ public function echoIT($message) { $this->validate($message); echo $message; } Má tam být to zvýrazněné nebo ne? |
||
Joker Profil |
#2 · Zasláno: 26. 7. 2010, 19:12:26 · Upravil/a: Joker
Hologos:
Na řádku 3 má být throw, ne throws. (příspěvek už opraven) Zní tedy otázka, jestli v dokumentaci metody echoIT má být „@throws Exception“? Taky jsem pátral a došel k názoru, že má. Pokud tedy ta metoda tu výjimku nezachytí. Tj. můj soukromý názor: /** * Tady bude, že může vyhodit Exception * @throws Exception */ public function haziVyjimku() { throw new Exception("exception!"); } /** * Tahle taky může vyhodit Exception * @throws Exception */ public function foo() { $this->haziVyjimku(); } /** * Tahle nevyhazuje Exception */ public function bar() { try { $this->haziVyjimku() } catch(Exception $e) { echo("Error!"); } } |
||
Hologos Profil |
#3 · Zasláno: 26. 7. 2010, 19:16:10
Já to psal v rychlosti a nasekal jsem tam tolik překlepů, že to snad není ani možné..
Zatím jsem to tak do teďka psal, smazat to je vždycky jednodušší než to všude dopisovat. Počkám ještě na názory ostatních, díky. |
||
Jan Tvrdík Profil |
#4 · Zasláno: 26. 7. 2010, 20:45:59
Hologos:
Souhlasím s Jokerem. |
||
joe Profil |
#5 · Zasláno: 26. 7. 2010, 21:25:28
Ano, psát to tam všude. Protože pak by bylo asi docela nepříjemný dostávat se až do několik předešlých metod, jestli tam k nějaké vyjímce může dojít...Zdá se mi to dost nevyřešené, stejně jako v C#, osobně jsem se na to ptal na jiném fóru. Zdá se mi dobré, jak to je v Javě, že tam prostě musí být za názvem metody "throws ...", pokud nějakou vyjímku chci propustit a pokud ne, tak ji zachytit, ale ty se ptáš na PHPDoc
|
||
Časová prodleva: 14 let
|
0