Разрешение вопросов, связанных с исключениями: System.FormatException
Исключение FormatException генерируется методом, который анализирует или форматирует тип, когда формат аргумента отличается от спецификаций параметра метода.
Порождение исключений по формату
Форматирование
Форматирование — это процесс преобразования экземпляра класса, структуры или значения перечисления в строковое представление. Результирующая строка затем может отображаться пользователям или применяться для сохранения состояния объекта.
Например, Int32.ToString(String) принимает параметр строки, определяющий стандартную или пользовательскую строку формата и возвращает строковое представление числа. Метод создает исключение FormatException. Если строка формата является недопустимой или не поддерживается, создается исключение.
Составное форматирование
Составное форматирование принимает список объектов и строку составного формата в качестве входных данных. Строка составного формата состоит из фиксированного текста, в который включены индексированные местозаполнители, которые называются элементами форматирования и соответствуют объектам из списка. Операция форматирования создает результирующую строку, состоящую из исходного фиксированного текста, в который включено строковое представление объектов из списка.
String.Format и Console.WriteLine — примеры методов, выполняющих составное форматирование. Методы, использующие составное форматирование, создают исключение FormatException, если строка формата является недопустимой, или индекс элемента формат меньше нуля либо больше или равно количеству аргументов.
Синтаксический анализ
Синтаксический анализ — это процесс преобразования строки, представляющей базовый тип платформы .NET Framework в данный базовый тип. Например, операция синтаксического анализа используется для преобразования строки в число с плавающей запятой или в значение даты и времени.
Например, Int32.Parse(String) Parse преобразует строковое представление даты и времени в его эквивалент DateTime с помощью информации о специфическом для культуры формате, которая указана в параметре IformatProvider. Если строка имеет недопустимый формат, создается исключение FormatException.
Предотвращение исключений FormatExceptions
В статье по ссылкам класса FormatException указаны общие причины и решения для ошибок FormatException.
В библиотеке MSDN в разделах Типы форматирования в .NET Framework и Анализ строк в .NET Framework содержится информация о правильном форматировании и типах синтаксического анализа.
Составное форматирование
Числовые типы
Типы "Дата и время" и Timespan
Другие типы