Runtime fejl og logisk fejl er to forskellige typer fejl, der kan opstå i et computerprogram.
Kørselsfejl
En køretidsfejl opstår, når et program kører og støder på et problem, der forhindrer det i at fortsætte med at køre. Dette kan være forårsaget af en række faktorer, såsom:
* Division med nul: Dette sker, når et program forsøger at dividere et tal med nul, hvilket er matematisk udefineret.
* Matrixindeks uden for grænserne: Dette sker, når et program forsøger at få adgang til et element i et array, der ikke eksisterer.
* Nul pointer dereference: Dette sker, når et program forsøger at få adgang til en hukommelsesplacering, der ikke er blevet tildelt en værdi.
Kørselsfejl er normalt forårsaget af fejl i programkoden, såsom tastefejl eller forkert logik. De kan også være forårsaget af eksterne faktorer, såsom strømsvigt eller hardwarefejl.
Logisk fejl
En logisk fejl opstår, når et program producerer forkert output, men ikke går ned. Dette kan være forårsaget af en række faktorer, såsom:
* Forkert logik: Dette sker, når et program følger et logisk flow, der er forkert, hvilket fører til forkert output.
* Ugyldige data: Dette sker, når et program bruger data, der er forkerte eller ugyldige, hvilket fører til forkert output.
* Afrundingsfejl: Dette sker, når et program bruger tilnærmelser eller flydende kommaberegninger, hvilket fører til små fejl, der akkumuleres over tid og producerer forkert output.
Logiske fejl er ofte sværere at finde og rette end runtime fejl, da de kan være forårsaget af subtile fejl i programkoden eller af forkerte antagelser om dataene.
Oversigt
Følgende tabel opsummerer de vigtigste forskelle mellem runtime-fejl og logiske fejl:
| Funktion | Kørselsfejl | Logisk fejl |
|---|---|---|
| Når det sker | Under udførelsen | Efter udførelse |
| Årsag | Programkodefejl, ekstern faktor | Forkert logik, ugyldige data, afrundingsfejl |
| Effekt | Program går ned | Program producerer forkert output |
| Svært at finde og rette | Normalt nemmere | Normalt sværere |