Ваш метод может делать одно из трех, когда аргумент равен нулю. Он может выдать исключение, он может вернуться, ничего не делая, или он может сделать предположения и попытаться продолжить. Я предполагаю, что вы пытаетесь выбрать один из первых двух вариантов.
Поскольку вызывающий метод всегда может проверять аргументы перед вызовом вашего метода, он может предотвратить передачу недопустимых значений. Это верно независимо от того, как ваш метод обрабатывает недопустимые значения.
Когда ваш метод вызывается с недопустимыми аргументами, он должен уведомить вызывающую программу о том, что обработка не продолжалась. Вы можете уведомить об этом, выдав исключение или вернув значение ошибки. Если вы проверите нулевое значение и не вернете значение ошибки, вызывающий метод предположит, что ваш метод обработан без ошибок.
Как вы хотите, чтобы вызывающий метод обрабатывал случай, когда ваш метод не обрабатывается? Если передача значения null является нормальным явлением и должна легко обрабатываться вызывающим методом, возвращающим ошибку с нулевым аргументом, то это приемлемо. В этом случае вызывающий метод проверяет аргументы до или возвращаемое значение после выбора до того, кто напишет вызывающий метод.
Если передача нуля очень редка, выдается исключение. Вызывающий метод может предотвратить исключение, проверив аргументы перед вызовом вашего метода, как описано выше. Вызывая исключение, стек вызовов можно разматывать, не добавляя много кода.
Резюме:
Если аргумент, установленный в null, является рутинным, и вызывающий метод должен быть написан для обработки возврата вашей функции без каких-либо действий, просто верните значение ошибки. Если нулевой аргумент встречается редко, и нельзя ожидать, что вызывающий метод будет обрабатывать ваш метод, ничего не делая, и выдается исключение, поэтому стек вызовов отменяется.