Помилки виконання:
- Помилка виконання в програмі — це помилка, яка виникає під час виконання програми після її успішної компіляції.
- Помилки виконання зазвичай називають згаданими помилки і часто зустрічаються під час процесу налагодження перед випуском програмного забезпечення.
- Коли помилки під час виконання виникають після того, як програму було розповсюджено, розробники часто випускають патчі або невеликі оновлення, призначені для виправлення помилок.
- Кожен може знайти список проблем, з якими може зіткнутися новачок Ця стаття .
- Під час вирішення проблем на онлайн-платформах можна зіткнутися з багатьма помилками під час виконання, які чітко не вказані в повідомленні, яке надходить із ними. Існують різноманітні помилки під час виконання, наприклад логічні помилки , Помилки введення/виведення , помилки невизначених об'єктів , ділення на нуль помилок , та багато іншого.
Типи помилок виконання:
- SIGFPE: SIGFPE - це a з плаваючою комою помилка. Це практично завжди викликано a ділення на 0 . Нижче наведено три основні причини помилки SIGFPE:
- Ділення на нуль.
- Операція по модулю нуля.
- Переповнення цілого числа.
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(); } }>Вихід:// JavaScript program to demonstrate division by zero behavior // Perform division by zero let result = 5 / 0; // Print the result console.log(result);>

- SIGABRT: Це сама помилка, яка виявляється програмою, тоді цей сигнал генерується за допомогою виклику перервати() функція. Цей сигнал також використовується стандартною бібліотекою для повідомлення про внутрішню помилку. assert() функція в C++ також використовує abort() для створення цього сигналу. Нижче наведено програму для ілюстрації помилки 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()>Вихід:// 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: Ця помилка означає Ненульовий код виходу . для C користувачів, ця помилка буде згенерована, якщо метод main(). повернення не має 0 заява. Java Користувачі /C++ можуть створити цю помилку, якщо створять виняток. Нижче наведено можливі причини отримання помилки NZEC:
- Нескінченна рекурсія або якщо у вас вичерпано пам’ять стека.
- Доступ до негативного індексу масиву.
- Виняток ArrayIndexOutOfBounds.
- Виняток StringIndexOutOfBounds.
Java#include #include using namespace std; int main() { vectorarr = {1, 2}; try { // Навмисна помилка: доступ до елемента поза межами 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])>
Вихід:// 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: Ця помилка є найпоширенішою і відома як Помилка сегментації . Він створюється, коли програма намагається отримати доступ до пам’яті, доступ до якої заборонено, або намагається отримати доступ до місця пам’яті недозволеним способом. Перелік деяких поширених причин помилок сегментації:
- Доступ до масиву поза межами.
- Розіменування покажчиків NULL.
- Розіменування звільненої пам'яті.
- Розіменування неініціалізованих покажчиків.
- Неправильне використання & (адреса) і * оператори (розіменування).
- Неправильні специфікатори форматування в операторах printf і scanf.
- Переповнення стека.
- Запис у постійну пам'ять.
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); } }>Вихід:// 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.>
Способи уникнення помилок виконання:
- Уникайте використання змінних, які не були ініціалізовані. Вони можуть бути встановлені на 0 у вашій системі, але не на платформі кодування.
- Перевірте кожне входження елемента масиву та переконайтеся, що воно не виходить за межі.
- Уникайте декларування занадто великого обсягу пам'яті. Перевірте ліміт пам'яті, вказаний у запитанні.
- Уникайте декларування занадто багато Стекова пам'ять . Великі масиви слід оголошувати глобально поза функцією.
- Використовуйте return як кінцевий оператор.
- Уникайте посилань вільна пам'ять або нульові покажчики .



