Як хороший програміст, слід написати надійні коди, які будуть обробляти кожен результат його програми. Однак майже всі функції з бібліотеки С повернуть 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, хоча ви могли б імітувати його стрибками.