Какая ошибка возникает, это ключ к пониманию того, где она возникает: если A может вернуть только ошибку # 5, B только # 42, C только # 3 и D только # 56, то, когда foo возвращает # 5, вы знаете, что это A.
Если коды ошибок перекрывают разные функции, вы можете получить другие подсказки от ваших входов и выходов: если D либо отображает сообщение, либо выдает ошибку # 5, всякий раз, когда foo возвращает # 5 и сообщение отображается, вы знаете, что ошибка исходит от А.
Если кода ошибки, входных и выходных данных недостаточно для определения местоположения ошибки, вам необходимо повысить наблюдаемость вашей программы. Некоторые решения:
- добавить отладочную информацию и использовать отладчик
- добавить журналы, которые вы можете активировать или заблокировать по желанию
- выберите уникальные коды ошибок, чтобы определить, какая именно ошибка произошла,