Kørselsfejl:
- En runtime-fejl i et program er en fejl, der opstår, mens programmet kører efter at være blevet kompileret.
- Kørselsfejl kaldes almindeligvis kaldet fejl og findes ofte under fejlretningsprocessen, før softwaren frigives.
- Når der opstår runtime-fejl, efter at et program er blevet distribueret til offentligheden, udgiver udviklere ofte patches eller små opdateringer designet til at rette fejlene.
- Enhver kan finde listen over problemer, som de kan stå over for, hvis de er nybegyndere denne artikel .
- Mens der løses problemer på online platforme, kan der opstå mange køretidsfejl, som ikke er klart specificeret i den meddelelse, der følger med dem. Der opstår en række kørselsfejl som f.eks logiske fejl , Input/output fejl , udefinerede objektfejl , division med nul fejl , og mange flere.
Typer af køretidsfejl:
- SIGFPE: SIGFPE er en flydende komma fejl. Det er stort set altid forårsaget af en division med 0 . Der kan hovedsageligt være tre hovedårsager til SIGFPE-fejl beskrevet som følger:
- Division med nul.
- Modulo Operation by Zero.
- Heltalsoverløb.
Java// C++ program to illustrate // the SIGFPE error #include using namespace std; // Driver Code int main() { int a = 5; // Division by Zero cout << a / 0; return 0; }>Python3public class Main { public static void main(String[] args) { int a = 5; try { // Division by Zero System.out.println(a / 0); } catch (ArithmeticException e) { // Handle the ArithmeticException System.out.println('Error: Division by zero is not allowed.'); } } }>C## Python program to illustrate # the ZeroDivisionError # Driver Code def main(): a = 5 try: # Division by Zero print(a / 0) except ZeroDivisionError as e: print(f'Error: {e}') if __name__ == '__main__': main()>Javascriptusing System; class Program { static void Main() { int a = 5; try { // Division by Zero Console.WriteLine(a / 0); } catch (DivideByZeroException ex) { // Handling DivideByZeroException Console.WriteLine('Error: ' + ex.Message); } Console.ReadLine(); } }>Produktion:// JavaScript program to demonstrate division by zero behavior // Perform division by zero let result = 5 / 0; // Print the result console.log(result);>

- SIGABRT: Det er en fejl i sig selv, der opdages af programmet, så genereres dette signal ved hjælp af opkald til abort() fungere. Dette signal bruges også af standardbiblioteket til at rapportere en intern fejl. hævde() fungere i C++ bruger også abort() til at generere dette signal. Nedenfor er programmet til at illustrere SIGBRT-fejlen:C++
Java// C++ program to illustrate // the SIGBRT error #include using namespace std; // Driver Code int main() { // Assigning excessive memory int a = 100000000000; int* arr = new int[a]; return 0; }>Python3public class Main { public static void main(String[] args) { try { // Assigning excessive memory int a = 1000000000; int[] arr = new int[a]; } catch (OutOfMemoryError e) { // Catch the OutOfMemoryError System.err.println('Caught OutOfMemoryError: ' + e.getMessage()); } } } //This code is contributed by Adarsh>JavaScript# Python program to illustrate # the MemoryError # Driver Code def main(): try: # Attempting to allocate excessive memory a = 100000000000 arr = [0] * a except MemoryError as e: print(f'Error: {e}') if __name__ == '__main__': main()>Produktion:// JavaScript program to illustrate the MemoryError // Driver Code function main() { try { // Attempting to allocate excessive memory const a = 100000000000; const arr = new Array(a).fill(0); } catch (e) { console.log('Error: ' + e.message); } } main();>
- NZEC: Denne fejl angiver Udgangskode uden nul . Til C brugere, vil denne fejl blive genereret, hvis main() metode har ikke afkast 0 udmelding. Java /C++-brugere kunne generere denne fejl, hvis de kaster en undtagelse. Nedenfor er de mulige årsager til at få NZEC-fejl:
- Uendelig rekursion eller hvis du løber tør for stakhukommelse.
- Der er adgang til negativt matrixindeks.
- ArrayIndexOutOfBounds undtagelse.
- StringIndexOutOfBounds undtagelse.
Java#include #include using namespace std; int main() { vectorarr = {1, 2}; prøv { // Forsætlig fejl: Adgang til et element uden for grænserne<< arr.at(2) << endl; // Accessing index 2 which is out of bounds } catch (const out_of_range& e) { cout << 'Error the index is out of bound'<< endl; // Handle the out_of_range exception } return 0; } //This code is contrbiuted by Adarsh> Pythonpublic class Main { public static void main(String[] args) { int[] arr = {1, 2}; // Intentional Error: Accessing an element out of bounds System.out.println(arr[2]); // Error: Accessing index 2 which is out of bounds } } //this code is contributed by Utkarsh.>JavaScript# Python program to illustrate # the NZEC Error # Driver Code if __name__ == '__main__': arr = [1, 2] # Runtime Error # Array Index out of Bounds print(arr[2])>
Produktion:// JavaScript program to illustrate // the error similar to NZEC Error // Driver Code let arr = [1, 2]; // Runtime Error // Array Index out of Bounds console.log(arr[2]);>

- SIGSEGV: Denne fejl er den mest almindelige fejl og er kendt som Segmenteringsfejl . Den genereres, når programmet forsøger at få adgang til en hukommelse, der ikke har tilladelse til at få adgang til, eller forsøger at få adgang til en hukommelsesplacering på en måde, der ikke er tilladt. Liste over nogle af de almindelige årsager til segmenteringsfejl er:
- Adgang til et array uden for grænserne.
- Der henvises til NULL-pointere.
- Frareferencer frigjort hukommelse.
- Dereferencer ikke-initialiserede pointere.
- Forkert brug af & (adresse på) og * (dereference) operatører.
- Ukorrekte formateringsspecifikationer i printf- og scanf-sætninger.
- Stakoverløb.
- Skrivning til skrivebeskyttet hukommelse.
Java// C++ program to illustrate // the SIGSEGV error #include using namespace std; // Function with infinite // Recursion void infiniteRecur(int a) { return infiniteRecur(a); } // Driver Code int main() { // Infinite Recursion infiniteRecur(5); }>Pythonimport java.util.*; public class Main { // Function with infinite Recursion static void infiniteRecur(int a) { // Recursively call the function without a base case infiniteRecur(a); } // Driver Code public static void main(String[] args) { // Infinite Recursion infiniteRecur(5); } } //This code is contributed by Monu.>C## Python program to illustrate # the SIGSEGV error # Function with infinite # Recursion def infiniteRecur(a): return infiniteRecur(a) # Driver Code if __name__ == '__main__': # Infinite Recursion infiniteRecur(5) #This code is contributed by Utkarsh.>
JavaScriptusing System; class Program { // Function with infinite Recursion static void InfiniteRecur(int a) { // Recursively calling the function InfiniteRecur(a); } // Driver Code static void Main() { // Infinite Recursion InfiniteRecur(5); } }>Produktion:// Function with infinite Recursion function infiniteRecur(a) { // Recursively call the function without a base case infiniteRecur(a); } // Infinite Recursion infiniteRecur(5); // Note: JavaScript does not have tail-call optimization, // so running this code will eventually lead to a maximum call stack size exceeded error.>
Måder at undgå Runtime Errors:
- Undgå at bruge variabler, der ikke er blevet initialiseret. Disse kan indstilles til 0 på dit system, men ikke på kodningsplatformen.
- Kontroller hver enkelt forekomst af et array-element, og sørg for, at det ikke er uden for grænserne.
- Undgå at erklære for meget hukommelse. Tjek for den hukommelsesgrænse, der er angivet i spørgsmålet.
- Undgå at erklære for meget Stakhukommelse . Store arrays skal erklæres globalt uden for funktionen.
- Brug retur som slutsætning.
- Undgå at referere fri hukommelse eller null pointer .



