rpr Posted April 30, 2013 Report Share Posted April 30, 2013 nu tu to vari nosaukt par kļūdu un vari arī nosaukt par paziņojumu kāpēc nevalidējās. pa lielam validācija jau atgriež boolean, nevis void ar iespēju exceptionu norauties. Quote Link to comment Share on other sites More sharing options...
codez Posted April 30, 2013 Report Share Posted April 30, 2013 (edited) Par šo jau šeit bija viena diskusija pāris mēnešus atpakaļ.rpr, validācijā exceptionus izmanto ļoti plaši un tie būs sastopami prakstiki jebkurā validācijas bibliotēkā, kura būvēta uz platformas, kur exceptioni ir labi atbalstīti. Tā kā PHP tie ir tādi hibrīdīgi, daļa funkciju met warningus, daļa errorus un tikai daļa exceptionus, tad PHP exceptionus izmanto mazāk, taču tie ir daudz ērtāks mehānisms kļūdu apstrādei un es iesaku tos izmantot arī PHP. Piemēram, Kohanas ORM validācijas bibliotēka itin labi izmanto šo mehānismu: http://kohanaframework.org/3.2/guide/orm/validation Edited April 30, 2013 by codez Quote Link to comment Share on other sites More sharing options...
codez Posted April 30, 2013 Report Share Posted April 30, 2013 anonīm, pēc kļūdu paziņojuma spriežot, tu exceptionu izmet, bet tas netiek noķerts, pārbaudi kārtīgi vai exceptions tiek mests try{} bloka ietvaros. Quote Link to comment Share on other sites More sharing options...
anonīms Posted April 30, 2013 Author Report Share Posted April 30, 2013 īsti pat nezinu, kur tā vaina bija, bet pārkopējot no jaunā faila rindas viss aizgāja, btw Cik gudri ir taisīt exceptionu iekšs exceptiona? try { $collected = $leagueClass->retrieveNFLdata($_FILES['gamelog']); try { $leagueClass->validateNFLdata($collected,$myteam,$league['id']); } catch (error $e){ $messages = '<div class="bx error">'.$e->getMessage().'</div>'; } } catch (error $e) { $messages = '<div class="bx error">'.$e->getMessage().'</div>'; } Quote Link to comment Share on other sites More sharing options...
codez Posted April 30, 2013 Report Share Posted April 30, 2013 (edited) Exceptionu skaistums ir tajā, ka tev to nevajag darīt: try { $collected = $leagueClass->retrieveNFLdata($_FILES['gamelog']); $leagueClass->validateNFLdata($collected,$myteam,$league['id']); } catch (error $e) { $messages = '<div class="bx error">'.$e->getMessage().'</div>'; } Ja kāda no funkcijām izmetīs exceptionu, tā uzreiz darbība pāries pie catch bloka. Pameklē un palasi kādu vispārigu tutoriāli par exceptioniem un kā to darbības principiem. Par to kā tos organizēt, veidot to hirearhiju, utt. Respektīvi tu vari izveidot vispārīgu exceptionu un tad konkrētus exceptionus, kas extendo vispārīgo. Tad tu vari ķert konkrētos, vai ķert vispārīgos exceptionus. Edited April 30, 2013 by codez Quote Link to comment Share on other sites More sharing options...
anonīms Posted April 30, 2013 Author Report Share Posted April 30, 2013 wow. Super! Paldies :) obligāti palasīšos Quote Link to comment Share on other sites More sharing options...
rpr Posted May 1, 2013 Report Share Posted May 1, 2013 te iepriekšējā diskusiju, ka esmu palaidis garām: http://php.lv/f/topic/21233-vai-leitot-return-vai-tomēr-ne-diskusijas-turpinājums/ Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.