Video: Python Web Apps with Flask by Ezra Zigmond 2024
I Objective-C behandler unntak uventede forhold i programmet. Vurder følgende når du oppretter kode for å unngå feil i IOS-appene dine. Vær nøye med:
-
En tildelingsoppgave mislykkes fordi systemet ditt går tom for minnet.
-
Dårlig inntasting kommer inn i programmet ditt og forårsaker (si) en divide-by-null-feil.
-
Ditt program forsøker feilsøkt å få tilgang til en matrise med en indeks som ikke er begrenset.
Unntak gjelder Objektorientert prinsipp for adskillelse av bekymringer som er ideen om å dele et program i forskjellige komponenter som overlapper funksjonaliteten så lite som mulig. Verdien av adskillelse av bekymringer er forenkling av utvikling og vedlikehold av dataprogrammer.
Når bekymringer er godt skilt, kan enkelte seksjoner utvikles og oppdateres uavhengig. Unntak automatiserer også forplantningen av en uventet tilstand til det punktet der det håndteres. Som et resultat er koden din ikke rotete med unntakshåndteringserklæringer, noe som gjør at koden din lettere å skrive og vedlikeholde.
Mål-C strekker seg C ved å gi fire kompilatorveiledninger for unntakshåndtering:
-
@try definerer en unntakshåndteringsblokk (det vil si kode som kan kaste unntak).
-
@catch () definerer en blokk med kode for å håndtere unntaket kastet i @try-blokk. Parameteren for @catch er unntaksobjektet kastet; Dette er vanligvis en NSException-objekt.
-
Definerer endelig en blokk med kode som utføres om et unntak kastes eller ikke.
-
@throw kaster et unntak - en NSException-objekt eller, oftere, et objekt som tilhører en underklasse av NSException.
Følgende kode viser hvordan unntak kan kastes, fanges og håndteres i en @ prøve … @fallsblokk.
@try {printf ("Jeg vet dette vil mislykkes"); NSDictionary * emptyDictionary = [[NSDictionary alloc] init]; NSException * anException = [NSException exceptionWithName: @ "MyException" grunn: @ "Bare for grins" userInfo: emptyDictionary]; @throw anEception;} @catch (NSException * unntak) {NSLog (@ "Unntak fanget med grunn>% @