Вы не предоставили достаточно информации, чтобы ответить на ваш вопрос. Очевидный ответ - посмотреть на сообщение об исключении, но я предполагаю, что это не то, что вы ищете.
Если действительно важно, чтобы вы могли различать их программно, то используйте другое исключение или, по крайней мере, используйте свойство paramName
конструктора текущего исключения. Это даст вам более актуальную информацию.
Однако, использование собственного типа исключения - единственный способ гарантировать, что вы перехватываете исключение для определенного обстоятельства . Поскольку ArgumentException
является частью фреймворка, возможно, что-то еще, что вы вызываете, может выбросить это, что приведет вас к тому же блоку catch. Если вы создадите свой собственный тип исключения (по одному для обоих или по одному для каждого из сценариев), это предоставит вам способ обработки конкретной ошибки. Конечно, судя по вашему примеру, кажется, что было бы проще просто проверить и посмотреть, является ли Val1
или Val2
нулевым, прежде чем вызывать функцию для начала.