chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-users] Coops print-object, error handling and flaming koalas


From: Stephen Eilert
Subject: [Chicken-users] Coops print-object, error handling and flaming koalas
Date: Thu, 22 Sep 2011 15:34:59 -0300


Today I hit a problem with some trivial code I wrote using Coops that I just couldn't figure out. The relevant code is here:

http://paste.call-cc.org/paste?id=d09b2c1438a7f063c07cd089fb3e74c68d0b2804

Yeah, I forgot to add the "port" argument. In any case, Coops' error message is misleading:

#<no print-method defined for: #<coops instance of `<color>'>>

There is a method alright, it's just crashing :)

Now, This is how coops handles the situation:

(define-record-printer (coops-instance obj out)
  (handle-exceptions ex
                     (begin
                       (display "#<no print-method defined for: " out)
                       (default-print-method obj out)
                       (display ">" out))
                     (print-object obj out) ) )

It will display the same error message regardless of the condition. So let's modify it to see what it was:

(define-record-printer (coops-instance obj out)
  (handle-exceptions ex
                     (begin
                       (display ((condition-property-accessor 'exn 'message)))
                      ; (display "#<no print-method defined for: " out)
                       (default-print-method obj out)
                       (display ">" out))
                     (print-object obj out) ) )

The actual error is thus:  #<Error in printer of record type `coops-instance': bad argument count - received 0 but expected 1> 
which is an (exn arity), in my code.

As pointed out by sjaaman, it should only catch the dispatch error. I could create a patch to do that, but I am not confortable enough with coops' code at this point and I am sure the error handling could be improved in ways I can't even see yet..


Also, there are no flaming koalas.



-- Stephen

"Kids these days.
Whatever happened to hard work?

       -- Joel Spolsky, The perils of javaschools"


reply via email to

[Prev in Thread] Current Thread [Next in Thread]