Skip to content

Commit b330c94

Browse files
committed
Merge pull request #71 from php-http/exceptions
Document exceptions
2 parents 1f6cdbc + d0f1145 commit b330c94

File tree

4 files changed

+31
-0
lines changed

4 files changed

+31
-0
lines changed

components/promise.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,5 +74,8 @@ executed if the request results in an error::
7474
}
7575
);
7676

77+
The ``$exception`` of the failure callback SHOULD implement ``Http\Client\Exception``.
78+
See :doc:`../httplug/exceptions` for more information on the exception classes you might encounter.
79+
7780
.. _`Promise PSR`: https://groups.google.com/forum/?fromgroups#!topic/php-fig/wzQWpLvNSjs
7881
.. _Promises/A+: https://promisesaplus.com

httplug/exceptions.rst

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
Exceptions
2+
==========
3+
4+
HTTPlug defines a common interface for all exceptions thrown by HTTPlug implementations.
5+
Every exception thrown by a HTTP client must implement ``Http\Client\Exception``.
6+
7+
``HttpClient::sendRequest()`` can throw one of the following exceptions.
8+
9+
================================== ============================= ===================
10+
Exception Thrown when Methods available
11+
================================== ============================= ===================
12+
TransferException something unexpected happened -
13+
└ RequestException the request is invalid ``getRequest()``
14+
|nbsp| |nbsp| └ NetworkException no response received
15+
due to network issues ``getRequest()``
16+
|nbsp| |nbsp| └ HttpException error response ``getRequest()``
17+
``getResponse()``
18+
================================== ============================= ===================
19+
20+
.. note::
21+
22+
The ``sendAsyncRequest`` should never throw an exception but always return a
23+
:doc:`../components/promise`. The exception classes used in ``Promise::wait`` and the ``then``
24+
callback are however the same as explained here.
25+
26+
.. |nbsp| unicode:: U+00A0 .. non-breaking space

httplug/introduction.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ HTTPlug defines two HTTP client interfaces that we kept as simple as possible:
1818

1919
* ``HttpAsyncClient`` defines a ``sendAsyncRequest`` method that sends a request
2020
asynchronously and always returns a ``Http\Client\Promise``.
21+
See :doc:`../components/promise` for more information.
2122

2223
Implementations
2324
---------------

index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ for discussion around a future HTTP client PSR.
6565

6666
Introduction <httplug/introduction>
6767
Usage <httplug/usage>
68+
Exceptions <httplug/exceptions>
6869
Tutorial <httplug/tutorial>
6970
Migrating <httplug/migrating>
7071

0 commit comments

Comments
 (0)