Существует различие между тем, что я бы назвал юридической и моральной ответственностью в этом случае. В качестве аналогии предположим, что вы видите человека с плохим зрением, идущего к краю утеса, беспечно не подозревающего о его существовании. Что касается вашей юридической ответственности, то, как правило, вы не сможете успешно привлечь вас к ответственности, если вы не предупредите его, и он продолжит ходить, упадет с обрыва и умрет. С другой стороны, у вас была возможность предупредить его - вы были в состоянии спасти его жизнь, и вы сознательно решили не делать этого. Обычный человек склонен относиться к такому поведению с презрением, полагая, что у вас была моральная обязанность поступать правильно.
Как это относится к рассматриваемому вопросу? Просто - вызываемый не "юридически" ответственен за действия вызывающего, глупые или иные, такие как передача неверного ввода. С другой стороны, когда дела идут плохо, и замечено, что простая проверка в вашей функции могла бы спасти звонящего от его собственной глупости, вы в конечном итоге разделите часть моральной ответственности за то, что произошло.
Конечно, здесь происходит компромисс, в зависимости от того, сколько на самом деле стоит вам чек. Возвращаясь к аналогии, предположим, что вы узнали, что тот же самый незнакомец медленно приближается к утесу на другом конце света, и что, потратив свои сбережения, чтобы прилететь туда и предупредить его, вы могли бы спасти его. Очень немногие люди будут судить вас очень строго, если в этой конкретной ситуации вы пренебрегаете этим (предположим, что телефон не был изобретен для целей этой аналогии). В терминах кодирования, однако, если проверка так же проста, как проверка на NULL
, вы не можете сделать это, даже если «реальная» вина в ситуации лежит на вызывающей стороне.