Учитывая, что более вероятный senario будет включать в себя каждый метод, имеющий разные параметры, а также, вероятно, некоторые
if (P1 == 1) { MethodA(P2) } else { MethodB(P2) }
Логика типа в долгосрочной перспективе имеет больше смысла проверять каждый параметр в точке входа, особенно если вам может потребоваться различная обработка ошибок в зависимости от того, где вызывался метод.
Если логика проверки для данного параметра начинает усложняться (т. Е. Более пяти строк кода), тогда рассмотрите закрытый метод для проверки этого параметра.