[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#41956: [PATCH] ice-9: exceptions: Properly format the error message.
From: |
Ricardo Wurmus |
Subject: |
bug#41956: [PATCH] ice-9: exceptions: Properly format the error message. |
Date: |
Thu, 25 Jun 2020 12:04:27 +0200 |
User-agent: |
mu4e 1.4.10; emacs 26.3 |
Hi Maxim,
here’s what I did in the REPL:
--8<---------------cut here---------------start------------->8---
scheme@(guile-user)> ,m (ice-9 exceptions)
scheme@(ice-9 exceptions)> (define (my/guile-system-error-converter key args)
(apply (case-lambda
((subr msg-args msg errno . rest)
;; XXX TODO we should return a more specific error
;; (usually an I/O error) as expected by R6RS programs.
;; Unfortunately this often requires the 'filename' (or
;; other?) which is not currently provided by the native
;; Guile exceptions.
(make-exception
(make-external-error)
(make-exception-with-origin subr)
(apply make-exception-with-message msg)
(make-exception-with-irritants msg-args)))
(_ (guile-external-error-converter key args)))
args))
scheme@(ice-9 exceptions)> (set! guile-exception-converters (acons
'system-error my/guile-system-error-converter guile-exception-converters))
scheme@(ice-9 exceptions)> ,m (guile-user)
scheme@(guile-user)> (guard (c ((message-condition? c)
(format #t "message: ~a~%" (condition-message c))))
(canonicalize-path "/doesntexist"))
message: No such file or directory
$11 = #t
scheme@(guile-user)>
--8<---------------cut here---------------end--------------->8---
--
Ricardo