Napake med izvajanjem:
- Napaka med izvajanjem v programu je napaka, ki se pojavi med izvajanjem programa po uspešnem prevajanju.
- Napake med izvajanjem se običajno imenujejo imenovane hrošči in jih pogosto najdemo med postopkom odpravljanja napak, preden je programska oprema izdana.
- Ko pride do napak med izvajanjem po tem, ko je bil program distribuiran javnosti, razvijalci pogosto izdajo popravke ali majhne posodobitve, namenjene odpravljanju napak.
- Vsakdo lahko najde seznam težav, s katerimi se lahko sreča, če je začetnik Ta članek .
- Pri reševanju težav na spletnih platformah se lahko soočimo s številnimi napakami v času izvajanja, ki niso jasno navedene v sporočilu, ki je priloženo. Obstajajo različne napake med izvajanjem, kot npr logične napake , Vhodno/izhodne napake , napake nedefiniranih objektov , deljenje z nič napakami , in še veliko več.
Vrste napak med izvajanjem:
- SIGFPE: SIGFPE je a plavajoča vejica napaka. Skoraj vedno ga povzroči a deljenje z 0 . Obstajajo lahko predvsem trije glavni vzroki za napako SIGFPE, opisani kot sledi:
- Deljenje z ničlo.
- Modulo delovanje z Zero.
- Celoštevilsko prelivanje.
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(); } }>Izhod:// JavaScript program to demonstrate division by zero behavior // Perform division by zero let result = 5 / 0; // Print the result console.log(result);>

- SIGABRT: To je napaka, ki jo zazna sam program, potem pa se ta signal generira s klicem prekiniti () funkcijo. Ta signal uporablja tudi standardna knjižnica za poročanje o notranji napaki. trditi () funkcija v C++ za ustvarjanje tega signala uporablja tudi abort(). Spodaj je program za ponazoritev napake SIGBRT: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()>Izhod:// 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: Ta napaka označuje Neničelna izhodna koda . Za C uporabnikov, bo ta napaka ustvarjena, če metoda main(). nima vračila 0 izjava. Java /C++ uporabniki lahko ustvarijo to napako, če sprožijo izjemo. Spodaj so možni razlogi za prikaz napake NZEC:
- Neskončna rekurzija ali če vam zmanjka pomnilnika sklada.
- Dostopan je negativni indeks polja.
- ArrayIndexOutOfBounds Izjema.
- Izjema StringIndexOutOfBounds.
Java#include #include using namespace std; int main() { vectorarr = {1, 2}; try { // Namerna napaka: dostop do elementa izven meja cout<< 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])>
Izhod:// 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: Ta napaka je najpogostejša napaka in je znana kot Napaka segmentacije . Ustvari se, ko program poskuša dostopati do pomnilnika, do katerega dostop ni dovoljen, ali poskuša dostopati do pomnilniške lokacije na način, ki ni dovoljen. Seznam nekaterih pogostih razlogov za napake pri segmentaciji je:
- Dostop do matrike izven meja.
- Dereferenciranje kazalcev NULL.
- Dereferenciranje sproščenega pomnilnika.
- Dereferenciranje neinicializiranih kazalcev.
- Nepravilna uporaba & (naslov) in * (dereferenciranje) operaterji.
- Nepravilni specifikatorji oblikovanja v stavkih printf in scanf.
- Preobremenitev.
- Pisanje v bralni pomnilnik.
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); } }>Izhod:// 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.>
Načini za izogibanje napakam med izvajanjem:
- Izogibajte se uporabi spremenljivk, ki niso bile inicializirane. Te so lahko nastavljene na 0 na vašem sistemu, vendar ne na platformi za kodiranje.
- Preverite vsako posamezno pojavitev elementa matrike in zagotovite, da ni izven meja.
- Izogibajte se navajanju preveč pomnilnika. Preverite omejitev pomnilnika, navedeno v vprašanju.
- Izogibajte se navajanju preveč Stack Memory . Velike nize je treba deklarirati globalno zunaj funkcije.
- Kot končni stavek uporabite return.
- Izogibajte se sklicevanju prosti pomnilnik oz ničelni kazalci .



