Spec-Zone.ru › Dart 2

dart:io

Функция exit

Never exit(
  1. int code
)

Немедленно завершает процесс Dart VM с заданным кодом завершения.

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

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

Обработка кодов завершения зависит от платформы.

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

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

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

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

Реализация

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.18.5/dart-io/exit.html

Spec-Zone.ru

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