Класс NoSuchMethodError
Класс NoSuchMethodError представляет собой ошибку,
которая возникает в момент выполнения программы, когда
происходит попытка вызвать метод, которого не существует
у объекта, или обратиться к несуществующему свойству.
Данная ошибка относится к категории Error, а не
Exception, поскольку свидетельствует о программной
ошибке в коде. Обычно эта ошибка выбрасывается средой
выполнения Dart автоматически, когда статическая проверка
типов не смогла выявить проблему (например, при работе
с динамическими типами или с объектами, помеченными
как dynamic). В первом параметре конструктор
класса принимает описание ошибки, во второй - имя
отсутствующего метода, в третий - объект, у которого
вызывался метод.
Синтаксис
NoSuchMethodError(String message, String memberName, Object? receiver)
Пример
Давайте попробуем вызвать несуществующий метод у объекта с динамическим типом и посмотрим на возникшую ошибку:
void main()
{
dynamic obj = 5;
obj.unknownMethod();
}
Результат выполнения кода:
Uncaught NoSuchMethodError: Class 'int' has no instance method 'unknownMethod'.
Пример
Давайте перехватим ошибку NoSuchMethodError
с помощью try и catch и выведем
информацию о ней:
void main()
{
try
{
dynamic obj = 'abcde';
obj.missingMethod();
}
catch (e)
{
print(e);
}
}
Результат выполнения кода:
"NoSuchMethodError: Class 'String' has no instance method 'missingMethod'."
Смотрите также
-
ключевое слово
try,
которое начинает блок перехвата ошибок -
ключевое слово
catch,
которое перехватывает возникшую ошибку -
класс
Error,
который является базовым для всех ошибок -
класс
UnsupportedError,
который сигнализирует о неподдерживаемой операции