Як хороший програміст, слід написати надійні коди, які будуть обробляти кожен результат його програми. Однак майже всі функції з бібліотеки С повернуть 0 або -1 або NULL, коли є помилка.
Іноді очевидно, що потрібна перевірка помилок, наприклад, коли ви намагаєтесь відкрити файл. Але я часто ігнорую перевірку помилок у таких функціях, як, printf
або навіть malloc
тому, що не вважаю себе потрібним.
if(fprintf(stderr, "%s", errMsg) < 0){
perror("An error occurred while displaying the previous error.");
exit(1);
}
Це хороша практика просто ігнорувати певні помилки, чи є кращий спосіб впоратися з усіма помилками?
try
оператором, тому вам не доведеться перевіряти кожен виклик чи операцію. (Також зауважте, що деякі мови краще, ніж інші, при виявленні простих помилок, таких як нульова відмінка або індекс масиву поза межами меж.)
errno
! Якщо ви не знайомі, хоча це правда, що "майже всі функції з бібліотеки С повернуть 0 або -1 або NULL
коли з’явиться помилка", вони також встановлюють глобальну errno
змінну , до якої можна отримати доступ, використовуючи, #include <errno.h>
а потім просто читаючи значення errno
. Так, наприклад, якщо open
(2) повертається -1
, ви можете перевірити, чи errno == EACCES
не вказуватиметься на помилку дозволу, або ENOENT
що вказує на те, що запитуваний файл не існує.
try
/ catch
, хоча ви могли б імітувати його стрибками.