РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
713 of 723 menu

Свойство stderr

Свойство stderr класса Process возвращает поток стандартного вывода ошибок запущенного процесса. Свойство имеет тип Stream<List<int>> и доступно только для чтения. Через этот поток процесс передает сообщения об ошибках, предупреждения и другую диагностическую информацию. Данные приходят в виде списка байтов, который обычно декодируют в строку с помощью utf8.decode.

Свойство stderr доступно только после успешного запуска процесса, поэтому его используют вместе с методами start или run. Чтобы получить текст ошибки, нужно подписаться на поток и преобразовать байты в строку.

Синтаксис

process.stderr

Пример

Давайте запустим процесс и выведем его поток ошибок. Для этого воспользуемся методом start:

import 'dart:convert'; import 'dart:io'; void main() async { Process process = await Process.start('ls', ['/nonexistent']); String err = await utf8.decodeStream(process.stderr); print(err); }

Результат выполнения кода:

"ls: cannot access '/nonexistent': No such file or directory"

Пример

Давайте подпишемся на поток ошибок и выведем каждую порцию данных по мере ее поступления:

import 'dart:convert'; import 'dart:io'; void main() async { Process process = await Process.start('ls', ['/nonexistent']); await for (List<int> bytes in process.stderr) { String line = utf8.decode(bytes); print('Error: ' + line); } }

Результат выполнения кода:

"Error: ls: cannot access '/nonexistent': No such file or directory"

Пример

Давайте соберем все сообщения об ошибках в одну строку с помощью listen:

import 'dart:convert'; import 'dart:io'; void main() async { Process process = await Process.start('ls', ['/nonexistent']); StringBuffer buffer = StringBuffer(); process.stderr.listen((List<int> bytes) { buffer.write(utf8.decode(bytes)); }); int code = await process.exitCode; print('Exit code: ' + code.toString()); print('Errors: ' + buffer.toString()); }

Результат выполнения кода:

"Exit code: 2" "Errors: ls: cannot access '/nonexistent': No such file or directory"

Смотрите также

  • класс Process,
    который представляет запущенный процесс
  • свойство stdout,
    которое возвращает поток стандартного вывода
  • свойство exitCode,
    которое возвращает код завершения процесса
  • метод start,
    который запускает процесс
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить