Spec-Zone.ru › Nim

std/oserrors

Source Edit

The std/oserrors module implements OS error reporting.

Imports

winlean

Types

OSErrorCode = distinct int32
Specifies an OS Error Code. Source Edit

Procs

proc `$`(err: OSErrorCode): string {.borrow, ...raises: [], tags: [], forbids: [].}
Source Edit
proc `==`(err1, err2: OSErrorCode): bool {.borrow, ...raises: [], tags: [],
    forbids: [].}
Source Edit
proc newOSError(errorCode: OSErrorCode; additionalInfo = ""): owned(ref OSError) {.
    noinline, ...raises: [], tags: [], forbids: [].}

Creates a new OSError exception.

The errorCode will determine the message, osErrorMsg функция будет использована для получения этого сообщения.

Код ошибки можно получить с помощью функции osLastError.

Если код ошибки равен 0 или сообщение об ошибке получить не удалось, будет использовано сообщение unknown OS error.

См. также:

  • функция osErrorMsg
  • функция osLastError
Source Edit
proc osErrorMsg(errorCode: OSErrorCode): string {....raises: [], tags: [],
    forbids: [].}

Преобразует код ошибки ОС в читаемое человеком строковое значение.

Код ошибки можно получить с помощью функции osLastError.

Если преобразование завершилось неудачно или errorCode равен 0, то вернётся значение "".

См. также:

  • функция raiseOSError
  • функция osLastError

Пример:

when defined(linux):
  assert osErrorMsg(OSErrorCode(0)) == ""
  assert osErrorMsg(OSErrorCode(1)) == "Operation not permitted"
  assert osErrorMsg(OSErrorCode(2)) == "No such file or directory"
Source Edit
proc osLastError(): OSErrorCode {.sideEffect, ...raises: [], tags: [], forbids: [].}

Возвращает последний код ошибки операционной системы.

Эта процедура полезна в случае, если вызов ОС завершился неудачно. В этом случае эта процедура вернёт код ошибки, описывающий причину неудачи вызова ОС. Затем можно использовать процедуру OSErrorMsg, чтобы преобразовать этот код в строку.

Предупреждение: Поведение этой процедуры различается между Windows и POSIX-системами. В Windows некоторые вызовы ОС могут сбросить код ошибки до 0, что приведет к возврату значения 0 этой процедурой. Поэтому рекомендуется вызывать эту процедуру сразу после того, как вызов ОС завершился неудачно. В POSIX-системах это не проблема.

См. также:

  • функция osErrorMsg
  • функция raiseOSError
Source Edit
proc raiseOSError(errorCode: OSErrorCode; additionalInfo = "") {.noinline,
    ...raises: [OSError], tags: [], forbids: [].}

Вызывает исключение OSError.

Прочитайте описание функции newOSError, чтобы узнать, как создаётся объект исключения.

Source Edit

© 2006–2024 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/oserrors.html

Spec-Zone.ru

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