From a1a8f01799c7a638db52ae008e85143c4b3f215a Mon Sep 17 00:00:00 2001
From: Paul Sokolovsky <pfalcon@users.sourceforge.net>
Date: Sat, 7 Jan 2017 14:23:33 +0300
Subject: [PATCH] docs/usocket: Clarify that socket timeout raises OSError
 exception.

---
 docs/library/usocket.rst | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/docs/library/usocket.rst b/docs/library/usocket.rst
index e3b2b4501..c46e8f4c5 100644
--- a/docs/library/usocket.rst
+++ b/docs/library/usocket.rst
@@ -149,10 +149,18 @@ Methods
 
        Set a timeout on blocking socket operations. The value argument can be a nonnegative floating
        point number expressing seconds, or None. If a non-zero value is given, subsequent socket operations
-       will raise a timeout exception if the timeout period value has elapsed before the operation has
+       will raise an ``OSError`` exception if the timeout period value has elapsed before the operation has
        completed. If zero is given, the socket is put in non-blocking mode. If None is given, the socket
        is put in blocking mode.
 
+       .. admonition:: Difference to CPython
+          :class: attention
+
+          CPython raises a ``socket.timeout`` exception in case of timeout,
+          which is an ``OSError`` subclass. MicroPython raises an OSError directly
+          instead. If you use ``except OSError:`` to catch the exception,
+          your code will work both in MicroPython and CPython.
+
     .. method:: socket.setblocking(flag)
 
        Set blocking or non-blocking mode of the socket: if flag is false, the socket is set to non-blocking,
-- 
GitLab