Spec-Zone.ru › Dart 2

dart:io

функция exit

Never exit(
  1. int code
)

Немедленно завершает процесс виртуальной машины Dart с указанным кодом выхода.

При этом метод не дожидается завершения асинхронных операций и не выполняет блоки finally. Поэтому использование exit с большой вероятностью приведёт к потере данных.

При отладке виртуальная машина не учитывает флаг --pause-isolates-on-exit, если вызывается exit, поскольку вызов этого метода приводит к немедленному завершению процесса виртуальной машины Dart. Чтобы правильно остановиться при выходе, вызовите debugger из dart:developer или Isolate.pause из dart:isolate для Isolate.current, чтобы приостановить изолят до вызова exit.

Обработка кодов выхода зависит от платформы.

В Linux и OS X код выхода при нормальном завершении всегда находится в диапазоне [0..255]. Если задан код выхода вне этого диапазона, фактическим кодом выхода будут младшие 8 бит, интерпретируемые как беззнаковое значение. Например, код выхода -1 приведёт к тому, что фактический код выхода будет равен 255.

В Windows код выхода может иметь любое 32-битное значение. Однако некоторые из этих значений зарезервированы для сообщений о системных ошибках, например сбоях.

Кроме того, исполняемый файл Dart использует код выхода 254 для сообщения об ошибках компиляции и код выхода 255 для сообщения об ошибке во время выполнения (необработанном исключении).

В связи с этим для передачи результата выполнения программы Dart окружающей среде рекомендуется использовать только коды выхода в диапазоне [0..127]. Это позволит избежать проблем совместимости между платформами.

Реализация

Never exit(int code) {
  ArgumentError.checkNotNull(code, "code");
  if (!_EmbedderConfig._mayExit) {
    throw new UnsupportedError(
        "This embedder disallows calling dart:io's exit()");
  }
  _ProcessUtils._exit(code);
}

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.19.6/dart-io/exit.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API