Programmeringsfejl er fejl i, hvordan applikationer fungerer. De kaldes almindeligvis "bugs", deraf udtrykket "debugging".

Som udvikler finder du, at du bruger meget tid på at rette fejl. Et antal af de fejl, du møder, er almindelige, og at kende dem vil hjælpe dig med at forhindre dem i første omgang.

Her er hvad du har brug for at vide om disse tre typer programmeringsfejl, og hvordan du kan beskytte dig mod dem:

1. Kørsels- eller udførelsesfejl

Dette er fejl, der opstår, når et program udføres (dvs. ved kørsel). De kan medføre, at et program ikke udføres korrekt eller slet ikke kører.

Fatal runtime-fejl får programudførelsen til at stoppe, mens de ikke-fatale får udførelsen til at afslutte, men med forkerte resultater.

En typisk runtime-fejl er en division med nul-fejl. Division med nul formodes at give et uendeligt resultat, men desværre er vi ikke kommet med en datastruktur, der kan gemme den mængde data endnu.

Derfor fører division med nul til en aritmetisk undtagelse i Java-kompilatoren.

instagram viewer

2. Logiske fejl

Logiske fejl er forårsaget af mangelfuld begrundelse. Det er vigtigt at bemærke, at disse fejl ikke nødvendigvis skyldes en "fejl", du har lavet. De kan forekomme, fordi du ikke overvejede et bestemt eksekveringsscenarie.

De er de sværeste at håndtere. Dette skyldes, at kode med en logisk fejl er et gyldigt program på det sprog, det er skrevet på. Derfor kaster det ikke en compiler-fejl. Det eneste problem er, at det giver forkerte resultater.

En fatal logisk fejl får programudførelsen til at stoppe, mens en ikke-dødelig tillader, at programudførelsen fortsætter, men med forkerte resultater.

En almindelig logikfejl er en off-by-one-fejl. Dette sker normalt, når der angives en loop-fortsættelsesbetingelse. Sig, at du vil udskrive de første fem firkantede tal.

Relaterede: Mest almindelige programmerings- og kodningsfejl

Du kan muligvis ende med at skrive koden nedenfor i din for-løkke, som kun giver de første fire sådanne tal.

for (int x = 1; x <5; x ++) {System.out.ln (x * x); }

For at undgå en sådan fejl kan du i stedet bruge <= tegnet. Brug af tegnet mindre end eller lig med er mere intuitivt, og det er derfor mindre sandsynligt, at du blander dine relationelle operationer.

En anden almindelig logisk fejl er at udelade begge seler i en kontrolerklæring, og alligevel udgør kroppen nedenfor en blok kode, der er under dens kontrol.

Se eksemplet nedenfor. Den kontrollerer, om et tilfældigt tal er ulige eller lige, og udskriver derefter et output.

importer java.util. Tilfældig;
offentlig klasse OddEven {
offentlig statisk ugyldig hoved (String [] args) {
Random numberGenerator = ny Random ();
int randomNumber = numberGenerator.nextInt (10);
hvis ((randomNumber% 2) == 0)
System.out.println ("Her er dit heldige nummer:" + tilfældigt nummer);
System.out.println ("Antallet" + tilfældigt antal + ", som du har, er lige"); // linje 11
}
}

Meddelelseslinje 11. Det udføres altid, uanset om det tilfældige tal, du fik, er jævnt. Dette ville naturligvis være logisk forkert, når det antal, du fik, er ulige.

Inklusive begge dele System.out.println udsagn mellem seler {}, ville have undgået dette.

Relaterede: Softwareudviklingstrin, som alle programmører burde vide

En anden logisk fejl at passe på er ikke at give en loop-termineringstilstand. Dette vil resultere i en uendelig løkke, og dit program afslutter aldrig udførelsen.

3. Syntaks eller kompileringstidsfejl

Disse er fejl forårsaget af overtrædelser af Java's sprogregler. De kaldes også kompilerings- eller kompileringsfejl.

Dette er de nemmeste fejl at håndtere, fordi din kompilator altid rapporterer dem. Mange compilere går endda videre og fortæller dig linjen i din kode, fejlen er på.

Fejltolerance

En praktisk måde at håndtere softwareproblemer på er at udnytte fejltolerance ved at inkludere undtagelseshåndtering. Du kan bruge prøv..fang udsagn for at opnå dette.

For at fortsætte med programudførelse uanset undtagelsen fanget i fangst blok, brug langt om længe udmelding.

Syntaksen er:

prøv {// Bloker for at udføre, hvis der ikke er nogen problemer} 
fangst (undtagelse e) {
// Blokering til håndtering af fundne problemer
} endelig {// Bloker for at udføre efter fangst
}

Se kodeeksemplet nedenfor:

importer java.util. Tilfældig;
offentlig klasse RandomNumbers {
offentlig statisk ugyldig hoved (String [] args) {
Random numberGenerator = ny Random ();
prøve{
for (int tæller = 10; tæller <= 100; tæller ++) {
int randomNumber = numberGenerator.nextInt (10);
System.out.println (counter / randomNumber); } }
fangst (undtagelse e) {
System.out.println ("Opdelte nul!");
}
langt om længe{
System.out.println ("Uendelig værdi fik");}
}
}

Ovenstående program genererer et tilfældigt tal mellem nul og 10 og bruger derefter dette tal til at opdele en tællerværdi mellem 10 og 100. Hvis der opstår deling med nul, opfanger systemet fejlen og viser en meddelelse.

Bliv bedre ved kodning

Det er god praksis at tilføje kommentarer til din kode. Dette hjælper dig med let at kæmpe igennem dine filer, når du har en fejl. Et lille, men meget vigtigt skridt til at udvikle stærke kodningsmetoder.

Med god kodningspraksis skal du være i stand til at undgå almindelige programmeringsfejl.

E-mail
Hvad er kodning, og hvordan fungerer det?

Forvirret om kodning? Forstår du ikke scripting? Her er hvad du har brug for at vide om byggestenene til programmering.

Læs Næste

Relaterede emner
  • Programmering
  • Java
  • Kodningstip
Om forfatteren
Jerome Davidson (14 artikler offentliggjort)

Jerome er Staff Writer hos MakeUseOf. Han dækker artikler om programmering og Linux. Han er også en kryptoentusiast og holder altid styr på kryptoindustrien.

Mere fra Jerome Davidson

Abonner på vores nyhedsbrev

Deltag i vores nyhedsbrev for tekniske tip, anmeldelser, gratis e-bøger og eksklusive tilbud!

Et trin mere !!!

Bekræft din e-mail-adresse i den e-mail, vi lige har sendt dig.

.