Innholdsfortegnelse:
Video: Technology Stacks - Computer Science for Business Leaders 2016 2024
Real-life HTML5 og CSS3 programmering er farlig. Mange ting kan gå galt i PHP. Så den smarte måten å programmere data på er defensiv programmering . Denne praksisen innebærer å forutse feil og prøver å løse dem grasiøst. PHP har noen avanserte feilhåndteringsteknikker tilgjengelig som er perfekte for oppgaven.
Tenk deg at du skrev noen kode som så slik ut:
skriv ut 5/0;
Du vil nok ikke gjøre det, men noen ganger slår dårlig kode gjennom. Hvis serveren din er konfigurert for å sende ut feilmeldinger, ser du noe slikt.
Unntakshåndtering
Det skjer faktisk mye mer enn du kanskje setter pris på først. Standard oppførselen til mange PHP-installasjoner er å skjule feil. Imidlertid oppstår det feil, spesielt hvis du tillater brukerinngang. Denne koden viser eksplisitt feller for feil og rapporterer dem uansett serverinnstillinger:
prøve. phpgetMessage ();} // ende prøve? >
Her er hva som skjer:
-
Bruk søkeordet til å indikere potensielt farlig kode.
Prøv-søkeordet åpner en blokk med kode (som en loop eller en tilstand). All koden mellom prøve og fangst regnes potensielt farlig.
-
Plasser farlig kode i forsøksblokken.
Enhver kode som kan forårsake feil, skal plasseres inne i prøveblokken. Den farligste koden innebærer vanligvis ting programmereren ikke kan kontrollere direkte: tilgang til eksterne filer, operasjoner på brukerdefinerte data eller eksponering for eksterne programmer og prosesser.
-
Bruk fangstklausulen for å forutse feil.
Fangstklausulen angir slutten av den farlige koden.
-
Angi unntakstypen.
Parameteren for fangstklausulen er et objekt av typen Unntak. PHP har en rekke innebygde unntak, og ofte vil et bibliotek eller verktøysett inneholde nye unntak (du kan også bygge dem selv hvis du vil).
-
Administrer unntaket.
Fangstklausulen åpner en annen blokk med kode. Sett koden her som vil løse problemet (eller i det minste dø med en liten stil og nåde - informere brukeren hva som gikk galt før du slår av denne dødelige spolen). Den vanligste linjen her er å ringe ut ($ e-> getMessage ()). Alle unntaksobjekter har en getMessage () -metode, og denne linjen rapporterer gjeldende feilmelding.
Vet når du skal fange for unntak
Hvis serveren din er konfigurert for feilsøking (som XAMPP er som standard), vil det vanligvis ikke være nødvendig å konfigurere unntakshåndtering fordi standardoppførelsen til feilsøkingsoppsettet er å rapporter unntakene uansett.Det er noen ganger du vil fortsatt ha eksplisitt unntakshåndtering:
-
Du er på en server uten feilsøkingsinnstillinger: Du har kanskje ikke tilgang til serverkonfigurasjonen, slik at du kanskje ikke kan slå på automatisk unntaksrapporter. Manuelle unntaksrapporter kommer fremdeles gjennom.
-
Du vil gjøre noe spesielt: Den automatiske unntakshandleren rapporterer bare problemet. Hvis du vil gjøre noe annet (si bruk en standardfil hvis en fil ikke er funnet), trenger du en egendefinert unntaksbehandler for den situasjonen.
-
Du gjør noe eksotisk: Spesielle biblioteker kommer ofte med egne unntak, og du trenger en unntakshåndterer som dekker disse situasjonene.