NightOwlMax & Bastion
Bastion Bastion
Привет, НочнойСовы, я тут думал, как сделать так, чтобы твой код не падал, когда система в критической ситуации – ну, как бы страховка для программы. Как ты обычно борешься с этими неожиданными ошибками во время работы?
NightOwlMax NightOwlMax
Оборачиваю каждый рискованный вызов в блок try…catch, но не просто заглушаю ошибку, а логирую её, а потом даю программе либо попробовать ещё раз, либо корректно завершиться. Использую утверждения для инвариантов, которые не должны нарушаться, и держу страж, который следит за использованием памяти и процессора, чтобы предотвратить крах до того, как он произойдёт. Юнит-тесты, охватывающие граничные случаи, помогают мне выявлять проблемы на ранней стадии, а немного защитного программирования – проверка на null, верификация индексов – поддерживает стабильность во время выполнения. И если система всё же выйдет из строя, мне нужен чёткий стек вызовов и отчёт об ошибке, чтобы я мог из этого извлечь урок, а не просто списать всё на случайность.