Поскольку в ответе MattC не указана причина, по которой ваш код не работает:
Вы получаете ошибку «Ссылка на объект не установлена на экземпляр объекта» из-за части ex.InnerException.Message
; если «ex.InnerException» равно нулю, у него не будет «Message».
Каждый раз, когда вы пытаетесь получить несколько уровней вниз по объектам, которые вы не знаете, существуют ли они или нет, вам нужно создать их (т.е. )