[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] How to catch an error when http-client can't connect
From: |
Christian Kellermann |
Subject: |
Re: [Chicken-users] How to catch an error when http-client can't connect? |
Date: |
Wed, 23 Jul 2014 22:47:46 +0200 |
User-agent: |
Gnus/5.130012 (Ma Gnus v0.12) Emacs/24.3 (berkeley-unix) |
Peter Bex <address@hidden> writes:
> On Wed, Jul 23, 2014 at 10:10:05PM +0200, Christian Kellermann wrote:
>> Matt Welland <address@hidden> writes:
>>
>> > I'd like to handle the case where http-client gets denied a
>> > connection. I wrapped the call to with-input-from-request with a
>> > handle-exceptions but that doesn't catch the error.
>>
>> How do you try to catch it?
>>
>> The following seems to work for me in csi:
>>
>> #;1> (thread-start!
>> (make-thread
>> (lambda ()
>> (with-exception-handler (lambda (e) (print e))
>> (lambda ()
>> (with-input-from-request
>> "http://localhost"
>> #f read-lines))))))
>>
>> #<thread: thread227>
>> #;2> #<condition: (exn http server-error)>
>>
>> The warning is an indication that the exception does not get caught in a
>> thread handler but the primordeal thread, see also the notes in
>> http://api.call-cc.org/doc/srfi-18#sec:Notes
>
> It's better to catch specifically the exception for the situation
> you want to handle, so that unexpected errors won't get caught
> by accident. Condition-case is your friend in that case:
I am aware of that, the example above is using with-exception-handler
since Matt mentioned it.
> From your output, it seems there's a server-error BTW, so maybe
> something's going wrong at the other end?
My specific error is caused by my proxy settings and unrelated to the
issue. I just used it to get an exception with http-client.
Cheers,
Christian