Pereiti prie turinio

[PHP] PDO try { } blokas


Rekomenduojami pranešimai

Sveiki,

 

turiu klausimą, ar visada reikia rašyti tam tikrus veiksmus/funkcijas try { } bloke? Jeigu ne, tai galit paaiškint kada geriau rašyti try { } bloke, o kada už jos ribų?

 

P.S Jeigu tarkim turiu naują failą tai vėl man reikės kurt try { } bloką? (Kad ir neincludinus ir includinus failą)

 

Dėkui už atsakymus iš anksto!

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Try catch bloką reikia rašyti tokiose situacijose, kur kažkas gali atsitikti blogai ir nesuveikti kodas. Tarkim jungiantis prie duomenų bazės gali būt užlūžęs serveris ir kas nors neveikti. Taigi iš pradžiu darai Try Catch prisijungimą. Taip pat galima naudot kai vartotojas tarkim turi įrašyt skaičių ir tu jį tada turi įdėt į duomenų bazę. Tačiau vartotoja įrašo ką nors kito. Tokiu atveju irgi gali paleist Catch bloką, kad kažkas blogai.

 

Trumpai šnekant jei manai, kad kažkas blogai gali atsitikti su kokiu kodu, kad ir 1 kartą iš 1000, ten dedi Try Catch bloką.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Try catch geriausia naudoti tuomet kai gali įvykti nenumatyta klaida arba jeigu nori pateikti savo klaidų pranešimus, kurie bus rodomi naudotojams. Apdorodamas klaidų klaidų pranešimus, gali padidinti programos saugumą ir užtikrinti, kad tam tikri duomenys naudotojams bus nepasiekiami, kai tuo tarpu pats klaidas loginsi į failą.

Redagavo mantys89
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Rašai try ten, kur tikiesi klaidos, o except bloke tvarkaisi su ta klaida. Čia jau viskas priklauso nuo to, kas ten ir kaip. Jei turi penkias užklausas iš eilės ir įvykus klaidai bet kurioj iš penkių taip pat tvarkysiesi – gali kišti į vieną :)

 

Šiaip nedaryk tokių struktūrų, kad vienas loginis kodo vienetas būtų per kelis failus. Jei net try blokui taip nutinka – kažkas labai negerai.

 

Paskaityk apie Exceptionus. Vienas pagrindinių daugelio kalbų elementų – keista, kad susiduri tik dabar.

http://www.php.net/manual/en/language.exceptions.php

Redagavo Silke
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Ai, kintamuosius, kurie visiškai nepriklauso nuo kažkokių exceptionų? Galima ir prieš try – galbūt normaliau skaitysis :) Žinoma, kad kokiam nors $a = 1; nereikės gaudyti jokio exceptiono :)

 

Daugely C stiliaus kalbų kiekvienas { } yra naujas blokas ir naujas scope, t.y. jei ten deklaruosi (ne vien priskirsi) kintamąjį, tai jo bloko išorėje jau nebebus.

 

PHP tuo tarpu toks kodas veikia puikiai

<?php
try {
   $a = 1;
}
catch (Exception $e) {
}
echo $a;
?>

 

Nes čia nelabai deklaracijų ir yra :)

 

Žodžiu – kaip tik tau gaunasi. Nors gal logiškiau tokius dalykus būtų daryti dar prieš try – tada mažesnis pats try gausis ir lengviau bus matyti, iš kur visgi tikimasi to exceptiono.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...