[Python-checkins] cpython: What's New in Python 3.3: mention the PEP 3151
victor.stinner
python-checkins at python.org
Wed Oct 12 20:34:18 CEST 2011
http://hg.python.org/cpython/rev/bff65cb4aa7c
changeset: 72895:bff65cb4aa7c
user: Victor Stinner <victor.stinner at haypocalc.com>
date: Wed Oct 12 20:35:02 2011 +0200
summary:
What's New in Python 3.3: mention the PEP 3151
files:
Doc/whatsnew/3.3.rst | 63 ++++++++++++++++++++++++++++++++
1 files changed, 63 insertions(+), 0 deletions(-)
diff --git a/Doc/whatsnew/3.3.rst b/Doc/whatsnew/3.3.rst
--- a/Doc/whatsnew/3.3.rst
+++ b/Doc/whatsnew/3.3.rst
@@ -109,6 +109,69 @@
XXX mention new and deprecated functions and macros
+PEP 3151: Reworking the OS and IO exception hierarchy
+=====================================================
+
+:pep:`3151` - Reworking the OS and IO exception hierarchy
+PEP written and implemented by Antoine Pitrou.
+
+New subclasses of :exc:`OSError` exceptions:
+
+ * :exc:`BlockingIOError`
+ * :exc:`ChildProcessError`
+ * :exc:`ConnectionError`
+
+ * :exc:`BrokenPipeError`
+ * :exc:`ConnectionAbortedError`
+ * :exc:`ConnectionRefusedError`
+ * :exc:`ConnectionResetError`
+
+ * :exc:`FileExistsError`
+ * :exc:`FileNotFoundError`
+ * :exc:`InterruptedError`
+ * :exc:`IsADirectoryError`
+ * :exc:`NotADirectoryError`
+ * :exc:`PermissionError`
+ * :exc:`ProcessLookupError`
+ * :exc:`TimeoutError`
+
+The following exceptions have been merged into :exc:`OSError`:
+
+ * :exc:`EnvironmentError`
+ * :exc:`IOError`
+ * :exc:`WindowsError`
+ * :exc:`VMSError`
+ * :exc:`socket.error`
+ * :exc:`select.error`
+ * :exc:`mmap.error`
+
+Thanks to the new exceptions, common usages of the :mod:`errno` can now be
+avoided. For example, the following code written for Python 3.2: ::
+
+ from errno import ENOENT, EACCES, EPERM
+
+ try:
+ with open("document.txt") as f:
+ content = f.read()
+ except IOError as err:
+ if err.errno == ENOENT:
+ print("document.txt file is missing")
+ elif err.errno in (EACCES, EPERM):
+ print("You are not allowed to read document.txt")
+ else:
+ raise
+
+can now be written without the :mod:`errno` import: ::
+
+ try:
+ with open("document.txt") as f:
+ content = f.read()
+ except FileNotFoundError:
+ print("document.txt file is missing")
+ except PermissionError:
+ print("You are not allowed to read document.txt")
+
+
Other Language Changes
======================
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list