Bästa svaret
Feltyper Det finns tre typer av fel: syntaxfel, logiska fel och körtidsfel. (Logiska fel kallas också semantiska fel). Vi diskuterade syntaxfel i vår anteckning om datatypfel. Eftersom utvecklingssystemet inte kan förstå uttalanden med syntaxfel (precis som du inte kan förstå meningar med grammatiska fel) kan det upptäcka dem så snart du skriver dem. Följande underprogram har tre syntaxfel.
Som ni ser indikeras syntaxfelen med en snurrande blå linje. Om du flyttar markören över den blå linjen visar VB.NET-utvecklingssystemet en förklaring av syntaxfelet, som visas nedan.
I detta fall anger felmeddelandet att programmeraren inte har skapat en objekt som heter ”labelone”. Programmeraren menade antagligen att skriva ”label1”.
I detta fall anger felmeddelandet att etiketter inte har ”Tuxt” -egenskaper – programmeraren menade förmodligen att skriva ”Text”.
I det här fallet försöker programmeraren tilldela ett numeriskt värde (heltal) till en strängegenskap. Programmeraren menade förmodligen att skriva ”14”.
Syntaxfel är lätta att hitta och korrigera eftersom utvecklingssystemet hittar dem åt dig.
Om du skriver ett uttalande som är syntaktiskt korrekt kommer datorn att förstå och köra den. Men om du av misstag sa till den att göra något som du inte egentligen tänkt, skulle du ha gjort ett logiskt eller semantiskt fel. Till exempel, om en programmerare av misstag multiplicerar två variabler när han eller hon tänkte dela dem, kommer programmet att ge ett felaktigt resultat, men inget felmeddelande.
Syntaxfel är grammatikfel; medan logiska eller semantiska fel är meningsfel.
Körtidsfel upptäcks medan programmet körs. Dessa upptäcks ofta när användaren matar in olagliga data. Till exempel, om användaren skriver in en sträng när datorn förväntar sig ett nummer kommer det att finnas ett körtidsfel:
När du kör ett löneprogram skrev användaren in ”tio” istället för ”10” för arbetade timmar. När datorn försökte multiplicera betalningsgraden med ”tio” genererade den felmeddelandet som visas ovan.
Eftersom datorn inte kan generera ett felmeddelande när du gör ett logiskt fel är de i allmänhet svårast att fixa . Att tålmodigt gå igenom genomförandet av programmet hjälper dig ofta att hitta ditt fel. Vi kommer också att se felsökningshjälpmedel i utvecklingssystemet.
Svar
Börja först härifrån och förstå vad som är skillnaden mellan undantag och fel i Java.
En bra diskussion här:
Skillnader mellan undantag och fel
Det finns i princip tre typer av fel som du måste kämpa med när du skriver datorprogram:
- Syntaxfel
- Runtime-fel
- Logikfel
Syntaxfel
Syntaxfel representerar i själva verket grammatikfel i användningen av programmeringsspråket. Vanliga exempel är:
- Felstavade variabel- och funktionsnamn
- Saknade semikolon
- Matchar fel inom parentes, hakparenteser och lockiga parenteser
- Felaktigt format i urval och loop-uttalanden
Runtime-fel
Runtime-fel uppstår när en program utan syntaxfel ber datorn att göra något som datorn inte kan göra på ett tillförlitligt sätt. Vanliga exempel är:
- Försöker dela med en variabel som innehåller värdet noll
- Försöker öppna en fil som inte finns
Det finns inget sätt för kompilatören att veta om den här typen av fel när programmet kompileras.
Logikfel
Logikfel uppstår när det finns en designfel i ditt program. Vanliga exempel är:
- Multiplicera när du ska dela
- Lägg till när du ska subtrahera
- Öppna och använda data från fel fil
- Visa fel meddelande