metal-0-1 Posted August 1, 2013 Report Share Posted August 1, 2013 (edited) Kā pēc 'best practise' OOP'iskā MVC aplikācijā rīkojas situācijā, kad kāds querijs Modelī nofeilo? Mest exceptionus tur pat uz vietas "return: false;", uzķert atgriezto vērtību Kontrollerī un tur mest exceptionus? Nemest exceptionus, darīt kaut ko citu. Edited March 23, 2014 by metal-0-1 Quote Link to comment Share on other sites More sharing options...
daGrevis Posted August 1, 2013 Report Share Posted August 1, 2013 Vienmēr eksepšeni. Noķer kontrolerī (īstenībā vienalga) un apstrāda. Quote Link to comment Share on other sites More sharing options...
Kasspars Posted August 1, 2013 Report Share Posted August 1, 2013 Met uzreiz exception un ļauj tam izpeldēt līdz pašai virsai. Tad pašā augšā aplikācijas līmenī uztaisi vienu generic exceptionu apstrādi - tipa lai norūtē uz kļūdas lapu, kur var arī izvadīt detalizētāku kļūdas aprakstu. Tādā veidā visi exceptioni tiks parādīti. Ja kādā kontrolierī vajadzēs specifiksku kļūdas apstrādi, tad jau ķersi to kontrolierī un domāsi ko tālāk darīt Quote Link to comment Share on other sites More sharing options...
daGrevis Posted August 1, 2013 Report Share Posted August 1, 2013 Kontroleris izsauks modeļa metodi, kura izsauks citu modeļa metodi, kura izsauks utilītu, kura citu, kura izmetīs eksepšenu, tu to varēsi noķert kontrolerī. Tas, kas izsauc kontroleri, to ietin try-catch, kurš to ielogo (sīki, ar visu info) un atgriež 500, smuko, erroru jūzerim. Quote Link to comment Share on other sites More sharing options...
Kasspars Posted August 1, 2013 Report Share Posted August 1, 2013 "ļaut izpeldēt līdz pašai virsai" - nekur neliec liekus try catch blokus es te tā rupji iezīmēšu application load (index.php) - te liec savu try catch, kas vispārīgi apstrādā visus exception -> routes load -> controller load -> model load -> modelis - šeit izmet exception un tas peldēs uz augšu līdz kamēr viņu kāds try catch bloks noķers Tavā piemēram vispār stulbi sanāk, pats izmet exception un pats uzreiz noķer :) Quote Link to comment Share on other sites More sharing options...
daGrevis Posted August 1, 2013 Report Share Posted August 1, 2013 > nekur neliec liekus try catch blokus Nepiekrītu. Ir errori, kurus var apstrādāt un tas nav prasts 500. Quote Link to comment Share on other sites More sharing options...
Kasspars Posted August 1, 2013 Report Share Posted August 1, 2013 To es biju domāji, kā "Neliec bezjēdzīgus try catch". Ja zini, ka būs specifiska kļūda, tad arī jāliek savs try catch, lai nelaistu exception izpeldēt līdz pašai virsai Quote Link to comment Share on other sites More sharing options...
daGrevis Posted August 1, 2013 Report Share Posted August 1, 2013 Nu viņi paši peld. :doh: Quote Link to comment Share on other sites More sharing options...
Kasspars Posted August 1, 2013 Report Share Posted August 1, 2013 (edited) @metal-0-1 Cik es saprotu tu pats taisi savu MVC frameworku, ja? Edited August 1, 2013 by Kasspars Quote Link to comment Share on other sites More sharing options...
Kavacky Posted August 2, 2013 Report Share Posted August 2, 2013 Pirmkārt, specifiskiem exceptioniem vajag savas klases, nevis visu, kas ir, lādēt iekšā "throw new Exception()", jo beigās ne sūda nevarēs saprast, kas meta, kas ķēra un kāpēc. Otrkārt, kas tas par vājprātu - viena metode, kas ielasa kaut kādu id, bet jau piedirsta ar try/catch bloku un divu līmeņu if'u. PIZĢETS BĻEĢ NAHUJ! Tā tu taisies atkārtot katrā metodē? Kam ir domāta datubāzes abstrakcija, kura pati noteikti lieliski prot izmest exceptionu, ja ar DB tiešām nebūs labi? Un es vēl pat neesmu ticis līdz vienkāršai loģikas kļūdai - sanāk, ja tu meklē id pēc kaut kāda random username, tad pie neeksistējoša userneima tas ir "Unexpected DB behavior"? Quote Link to comment Share on other sites More sharing options...
daGrevis Posted August 7, 2013 Report Share Posted August 7, 2013 Nu paņem tak kādu sakarīgu freimvorku. 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.