err ... +Err

Sergey ShishkinSergey Shishkin
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

https://picolisp.tiddlyhost.com/#err

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

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