File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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
Original file line number Diff line number Diff line change 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
Original file line number Diff line number Diff 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
2223Implementations
2324---------------
Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments