Programmeringsfeil er feil i hvordan applikasjoner fungerer. De blir ofte referert til som "bugs", derav begrepet "feilsøking".
Som utvikler vil du finne deg selv å bruke mye tid på å fikse feil. En rekke feil du vil møte er vanlige, og å kjenne dem vil hjelpe deg med å forhindre dem i utgangspunktet.
Her er hva du trenger å vite om disse tre typene programmeringsfeil og hvordan du kan beskytte deg mot dem:
1. Runtime eller Execution Feil
Dette er feil som oppstår når et program kjøres (dvs. ved kjøretid). De kan føre til at et program ikke kjøres ordentlig eller ikke kjøres i det hele tatt.
Fatal runtime-feil fører til at programkjøringen stopper mens de ikke-fatale fører til at kjøringen er ferdig, men med feil resultat.
En typisk kjøretidsfeil er en divisjon med null feil. Divisjon med null skal gi et uendelig resultat, men dessverre har vi ikke kommet med en datastruktur som kan lagre den datamengden ennå.
Derfor fører divisjon med null til et aritmetisk unntak i Java-kompilatoren.
2. Logikkfeil
Logiske feil er forårsaket av feil resonnement. Det er viktig å merke seg at disse feilene ikke nødvendigvis skyldes en "feil" du har gjort. De kan oppstå fordi du ikke vurderte et bestemt eksekveringsscenario.
De er de vanskeligste å håndtere. Dette er fordi kode med en logisk feil er et gyldig program på språket det er skrevet på. Derfor vil det ikke kaste en kompilatorfeil. Det eneste problemet er at det gir feil resultater.
En dødelig logikkfeil vil føre til at programkjøringen stopper mens en ikke-dødelig vil tillate at kjøringen av programmet fortsetter, men med feil resultat.
En vanlig logikkfeil er en off-by-one feil. Dette skjer normalt når du oppgir en løkke-fortsettelse tilstand. Si at du vil skrive ut de første fem firkantede tallene.
I slekt: De vanligste feilene ved programmering og koding
Du kan ende opp med å skrive koden nedenfor i for-sløyfen din, som bare gir de første fire slike tallene.
for (int x = 1; x <5; x ++) {System.out.ln (x * x); }
For å unngå en slik feil, kan du i stedet bruke <= tegnet. Det er mer intuitivt å bruke tegnet som er mindre enn eller lik-til, og det er derfor mindre sannsynlig at du blander sammen forholdet ditt.
En annen vanlig logikkfeil er å utelate begge klammeparentesene i en kontrollerklæring, og likevel danner kroppen nedenfor en blokk med kode som er under kontrollen.
Se på eksemplet nedenfor. Den sjekker om et tilfeldig tall er oddetall eller jevnt, og skriver deretter ut en utskrift.
importer java.util. Tilfeldig;
offentlig klasse OddEven {
public static void main (String [] args) {
Tilfeldig numberGenerator = ny Random ();
int randomNumber = numberGenerator.nextInt (10);
hvis ((randomNumber% 2) == 0)
System.out.println ("Her er lykketallet ditt:" + randomNumber);
System.out.println ("Antallet" + randomNumber + "som du har er jevnt"); // linje 11
}
}
Merknadslinje 11. Det vil alltid utføres uansett om det tilfeldige tallet du har er jevnt. Dette ville selvfølgelig være logisk galt når tallet du fikk er merkelig.
Inkludert begge deler System.out.println utsagn mellom bukseseler {}, ville ha unngått dette.
I slekt: Fremgangsmåte for programvareutvikling Alle programmerere bør vite
En annen logikkfeil å se etter er ikke å gi en avslutningstilstand for loop. Dette vil resultere i en uendelig løkke, og programmet ditt vil aldri fullføre kjøringen.
3. Syntaks eller kompileringstidsfeil
Dette er feil forårsaket på grunn av brudd på Java sine språkregler. De kalles også feil for kompilering eller kompileringstid.
Dette er de enkleste feilene å håndtere fordi kompilatoren din alltid rapporterer dem. Mange kompilatorer fortsetter til og med å fortelle deg linjen i koden feilen er på.
Feiltoleranse
En praktisk måte å håndtere programvareproblemer på er å utnytte feiltoleranse ved å inkludere unntakshåndtering. Du kan bruke prøv..fang uttalelser for å oppnå dette.
For å fortsette med programgjennomføring uavhengig av unntaket fanget i å fange blokker, bruk endelig uttalelse.
Syntaksen er:
prøv {// Blokker for å utføre hvis det ikke er noen problemer}
fangst (unntak e) {
// Blokker for å håndtere problemer funnet
} til slutt {// Blokker for å utføre etter fangst
}
Se kodeeksemplet nedenfor:
importer java.util. Tilfeldig;
offentlig klasse RandomNumbers {
public static void main (String [] args) {
Tilfeldig numberGenerator = ny Random ();
prøve{
for (int teller = 10; teller <= 100; teller ++) {
int randomNumber = numberGenerator.nextInt (10);
System.out.println (counter / randomNumber); } }
fangst (unntak e) {
System.out.println ("Oppdelt med null!");
}
endelig{
System.out.println ("Uendelig verdi fikk");}
}
}
Ovennevnte program genererer et tilfeldig tall mellom null og 10, og bruker deretter tallet til å dele en motverdi mellom 10 og 100. Hvis det oppdages divisjon med null, får systemet feilen og viser en melding.
Bli bedre ved koding
Det er god praksis å legge til kommentarer til koden din. Dette hjelper deg med å gre gjennom filer når du har en feil. Et lite, men veldig viktig skritt for å utvikle sterk kodingspraksis.
Med god kodingspraksis skal du kunne unngå vanlige programmeringsfeil.
Forvirret om koding? Forstår du ikke skript? Her er hva du trenger å vite om byggesteinene for programmering.
Les Neste
- Programmering
- Java
- Kodingstips
Jerome er Staff Writer på MakeUseOf. Han dekker artikler om programmering og Linux. Han er også en kryptoentusiast og holder alltid øye med kryptoindustrien.
Abonner på vårt nyhetsbrev
Bli med på nyhetsbrevet vårt for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!
Ett steg til…!
Bekreft e-postadressen din i e-posten vi nettopp sendte deg.