Logiskt fel (programmering)

Den här artikeln handlar om det logiska felet i programmering. För fel relaterade till överträdelse av resonemangets logiska riktighet, se Logiskt fel .

I programmering är ett logiskt fel en bugg som gör att programmet fungerar felaktigt, men inte kraschar programmet .

Logiska fel kan uppstå i både kompilatorer och tolkar . Till skillnad från syntaxfel är program med en logisk brist korrekta program, även om de i de flesta fall inte beter sig som ursprungligen avsett [1] .

Förekomsten av denna typ av fel är förknippad med felaktiga handlingar i beslutsfasen.

I C++ kallas ett speciellt undantag ( logic_exception ) även ett logiskt fel .

Allmänna skäl

Fel kan associeras både med de enklaste stavfelen i skrivoperatorer och i ett förvirrande val av algoritmgrenar. Det finns också många andra orsaker: felaktig typ av casting , användning av en variabel utanför dess räckvidd , saknar ett kodfragment och en utvecklare som missförstår kraven.

Felsökning av logiska fel

Ett sätt att hitta den här typen av fel är att skriva ut listan med variabler i programmet (till en extern fil eller till skärmen). Även om den här metoden inte fungerar om felet är att anropa fel funktion , är det fortfarande den enklaste om den matematiska algoritmen inte är korrekt implementerad .

Exempel

I det här exemplet är syftet med funktionen att returnera medelvärdet av de två givna talen. Felet ligger i underlåtenheten att ta hänsyn till operatörernas företräde (delningen i uttrycket beräknas före additionsoperationen) och frånvaron av parenteser av denna anledning.

int medelvärde ( int a , int b ) { returnera a + b / 2 ; /* korrekt notation (a + b) / 2 */ }

Se även

Anteckningar

  1. Känna till dina misstag. Tre typer av fel i programmering . Microsoft. Tillträdesdatum: 5 januari 2017. Arkiverad från originalet 6 januari 2017.