err ... +Err

1 min read
+Err - глобальная переменная, содержащая (возможно, пустое) тело prg
, которое будет выполнено во время обработки ошибок.
: (de *Err (prinl "Fatal error!"))
-> *Err
: (/ 3 0)
!? (/ 3 0)
Div/0
Fatal error!
?
errno - возвращает значение стандартной переменной ввода-вывода 'errno'.
: (in "foo") # Produce an error
!? (in "foo")
"foo" -- Open error: No such file or directory
? (errno)
-> 2
err - перенаправляет стандартный поток ошибок в sym
во время выполнения prg
. Текущий стандартный поток ошибок будет сохранен и восстановлен соответствующим образом. Если аргумент равен NIL
, будет использован текущий выходной поток. В противном случае sym
берется как имя файла (открывается в режиме "append", если первый символ - "+"), куда будет записана стандартная ошибка.
(err 'sym . prg) -> any
: (err "/dev/null" # Suppress error messages
(call 'ls 'noSuchFile) )
-> NIL
0
Subscribe to my newsletter
Read articles from Sergey Shishkin directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Sergey Shishkin
Sergey Shishkin
Всегда чему-то учусь!