Класс TypeError
Класс TypeError представляет собой ошибку,
которая возникает, когда операция получает значение
неподходящего типа. Например, при попытке выполнить
арифметическое действие над строкой или при обращении
к методу, которого нет у объекта. Объект класса
TypeError обычно выбрасывается средой выполнения
автоматически, но его также можно создать вручную
через конструктор. В первый параметр конструктора
передается сообщение об ошибке, во второй -
объект, вызвавший ошибку.
Синтаксис
TypeError([String message, dynamic object])
Пример
Давайте создадим объект класса TypeError
вручную и выведем его в консоль:
void main()
{
TypeError err = TypeError('Type mismatch', 'abcde');
print(err);
}
Результат выполнения кода:
"TypeError: Type mismatch: abcde"
Пример
Давайте попробуем присвоить переменной типа int
строковое значение и перехватим возникшую ошибку:
void main()
{
try
{
dynamic value = 'abcde';
int res = value;
print(res);
}
catch (e)
{
print(e.runtimeType);
print(e);
}
}
Результат выполнения кода:
"TypeError"
"TypeError: type 'String' is not a subtype of type 'int'"
Пример
Давайте вызовем несуществующий метод у объекта и посмотрим, какая ошибка при этом возникнет:
void main()
{
try
{
dynamic obj = 12345;
obj.someMethod();
}
catch (e)
{
print(e.runtimeType);
print(e);
}
}
Результат выполнения кода:
"NoSuchMethodError"
"NoSuchMethodError: Class 'int' has no instance method 'someMethod'."
Смотрите также
-
класс
NoSuchMethodError,
который возникает при вызове несуществующего метода -
класс
Error,
который является базовым классом для TypeError -
оператор
throw,
который выбрасывает исключение -
конструкция
catch,
которая перехватывает исключения