Класс NetworkImageLoadException
NetworkImage и Image.network бросают
NetworkImageLoadException, если HTTP ответ не успешен
или тело не прочиталось.
Поля statusCode и uri помогают показать
заглушку в errorBuilder.
Синтаксис
NetworkImageLoadException(
statusCode: statusCode,
uri: uri,
)
Параметры
| Параметр | Описание |
|---|---|
statusCode |
Код HTTP-ответа, из-за которого картинка не загрузилась. |
uri |
Адрес, по которому запрашивали картинку. |
Пример
Давайте показать abcde в errorBuilder:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Image.network(
'https://example.invalid/abcde.png',
errorBuilder: (context, error, stack) {
return const Text('abcde');
},
),
),
),
),
);
}
При ошибке сети вместо картинки появится текст 'abcde'.
Пример
Давайте вывести код 12345 из statusCode:
import 'package:flutter/material.dart';
import 'package:flutter/painting.dart';
void main()
{
final error = NetworkImageLoadException(
statusCode: 12345,
uri: Uri.parse('https://example/abcde'),
);
print(error.statusCode);
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Text('abcde'),
),
),
),
);
}
Результат выполнения кода
12345
В консоли число 12345; на экране строка 'abcde'.
Смотрите также
-
класс
ErrorWidget,
если ошибка картинки не поймана в errorBuilder -
класс
FlutterError,
глобальный обработчик assert и build -
класс
PlatformException,
ошибки платформенных каналов -
класс
MissingPluginException,
если плагин сети не подключён