Runtimefout en logische fout zijn twee verschillende soorten fouten die in een computerprogramma kunnen voorkomen.
Runtimefout
Een runtimefout treedt op wanneer een programma actief is en een probleem tegenkomt waardoor het niet verder kan worden uitgevoerd. Dit kan worden veroorzaakt door verschillende factoren, zoals:
* Delen door nul: Dit gebeurt wanneer een programma een getal door nul probeert te delen, wat wiskundig niet gedefinieerd is.
* Array-index buiten bereik: Dit gebeurt wanneer een programma toegang probeert te krijgen tot een element van een array dat niet bestaat.
* Null pointer-dereferentie: Dit gebeurt wanneer een programma toegang probeert te krijgen tot een geheugenlocatie waaraan geen waarde is toegewezen.
Runtimefouten worden meestal veroorzaakt door fouten in de programmacode, zoals typefouten of onjuiste logica. Ze kunnen ook worden veroorzaakt door externe factoren, zoals stroomstoringen of hardwarestoringen.
Logische fout
Er treedt een logische fout op wanneer een programma onjuiste uitvoer produceert, maar niet crasht. Dit kan worden veroorzaakt door verschillende factoren, zoals:
* Onjuiste logica: Dit gebeurt wanneer een programma een logische stroom volgt die onjuist is, wat leidt tot onjuiste uitvoer.
* Ongeldige gegevens: Dit gebeurt wanneer een programma gegevens gebruikt die onjuist of ongeldig zijn, wat leidt tot onjuiste uitvoer.
* Afrondingsfout: Dit gebeurt wanneer een programma benaderingen of drijvende-kommaberekeningen gebruikt, wat leidt tot kleine fouten die zich in de loop van de tijd ophopen en onjuiste uitvoer opleveren.
Logische fouten zijn vaak moeilijker te vinden en op te lossen dan runtime-fouten, omdat ze kunnen worden veroorzaakt door subtiele fouten in de programmacode of door onjuiste aannames over de gegevens.
Samenvatting
De volgende tabel geeft een overzicht van de belangrijkste verschillen tussen runtimefouten en logische fouten:
| Functie | Runtimefout | Logische fout |
|---|---|---|
| Wanneer het voorkomt | Tijdens uitvoering | Na uitvoering |
| Oorzaak | Programmacodefout, externe factor | Onjuiste logica, ongeldige gegevens, afrondingsfout |
| Effect | Programma loopt vast | Programma produceert onjuiste uitvoer |
| Moeilijk te vinden en op te lossen | Meestal gemakkelijker | Meestal moeilijker | |