Issue #16714: use 'raise' exceptions, don't 'throw'.

Patch by Serhiy Storchaka.
This commit is contained in:
Andrew Svetlov 2012-12-18 21:26:36 +02:00
commit 5b89840d9c
42 changed files with 64 additions and 64 deletions

View File

@ -253,7 +253,7 @@ behave slightly differently from real Capsules. Specifically:
* :c:func:`PyCapsule_GetName` always returns NULL.
* :c:func:`PyCapsule_SetName` always throws an exception and
* :c:func:`PyCapsule_SetName` always raises an exception and
returns failure. (Since there's no way to store a name
in a CObject, noisy failure of :c:func:`PyCapsule_SetName`
was deemed preferable to silent failure here. If this is

View File

@ -184,7 +184,7 @@ Functions and classes provided:
files = [stack.enter_context(open(fname)) for fname in filenames]
# All opened files will automatically be closed at the end of
# the with statement, even if attempts to open files later
# in the list throw an exception
# in the list raise an exception
Each instance maintains a stack of registered callbacks that are called in
reverse order when the instance is closed (either explicitly or implicitly

View File

@ -75,7 +75,7 @@ There's also a subclass for secure connections:
:class:`ssl.SSLContext` object which allows bundling SSL configuration
options, certificates and private keys into a single (potentially long-lived)
structure. Note that the *keyfile*/*certfile* parameters are mutually exclusive with *ssl_context*,
a :class:`ValueError` is thrown if *keyfile*/*certfile* is provided along with *ssl_context*.
a :class:`ValueError` is raised if *keyfile*/*certfile* is provided along with *ssl_context*.
.. versionchanged:: 3.3
*ssl_context* parameter added.

View File

@ -1171,7 +1171,7 @@ Querying the size of a terminal
output) specifies which file descriptor should be queried.
If the file descriptor is not connected to a terminal, an :exc:`OSError`
is thrown.
is raised.
:func:`shutil.get_terminal_size` is the high-level function which
should normally be used, ``os.get_terminal_size`` is the low-level
@ -1945,7 +1945,7 @@ features:
:mod:`os` module permit use of their *dir_fd* parameter. Different platforms
provide different functionality, and an option that might work on one might
be unsupported on another. For consistency's sakes, functions that support
*dir_fd* always allow specifying the parameter, but will throw an exception
*dir_fd* always allow specifying the parameter, but will raise an exception
if the functionality is not actually available.
To check whether a particular function permits use of its *dir_fd*
@ -1986,7 +1986,7 @@ features:
descriptor. Different platforms provide different functionality, and an
option that might work on one might be unsupported on another. For
consistency's sakes, functions that support *fd* always allow specifying
the parameter, but will throw an exception if the functionality is not
the parameter, but will raise an exception if the functionality is not
actually available.
To check whether a particular function permits specifying an open file
@ -2007,7 +2007,7 @@ features:
platforms provide different functionality, and an option that might work on
one might be unsupported on another. For consistency's sakes, functions that
support *follow_symlinks* always allow specifying the parameter, but will
throw an exception if the functionality is not actually available.
raise an exception if the functionality is not actually available.
To check whether a particular function permits use of its *follow_symlinks*
parameter, use the ``in`` operator on ``supports_follow_symlinks``. As an

View File

@ -385,7 +385,7 @@ class dispatcher:
else:
return data
except socket.error as why:
# winsock sometimes throws ENOTCONN
# winsock sometimes raises ENOTCONN
if why.args[0] in _DISCONNECTED:
self.handle_close()
return b''

View File

@ -151,7 +151,7 @@ class ExitStack(object):
files = [stack.enter_context(open(fname)) for fname in filenames]
# All opened files will automatically be closed at the end of
# the with statement, even if attempts to open files later
# in the list throw an exception
# in the list raise an exception
"""
def __init__(self):

View File

@ -104,7 +104,7 @@ class msvc9compilerTestCase(support.TempdirManager,
unittest.TestCase):
def test_no_compiler(self):
# makes sure query_vcvarsall throws
# makes sure query_vcvarsall raises
# a DistutilsPlatformError if the compiler
# is not found
from distutils.msvc9compiler import query_vcvarsall

View File

@ -13,7 +13,7 @@ parser. It returns when there's nothing more it can do with the available
data. When you have no more data to push into the parser, call .close().
This completes the parsing and returns the root message object.
The other advantage of this parser is that it will never throw a parsing
The other advantage of this parser is that it will never raise a parsing
exception. Instead, when it finds something unexpected, it adds a 'defect' to
the current message. Defects are just instances that live on the message
object's .defects attribute.
@ -228,7 +228,7 @@ class FeedParser:
# supposed to see in the body of the message.
self._parse_headers(headers)
# Headers-only parsing is a backwards compatibility hack, which was
# necessary in the older parser, which could throw errors. All
# necessary in the older parser, which could raise errors. All
# remaining lines in the input are thrown into the message body.
if self._headersonly:
lines = []

View File

@ -298,7 +298,7 @@ class Header:
else:
s = s.decode(input_charset, errors)
# Ensure that the bytes we're storing can be decoded to the output
# character set, otherwise an early error is thrown.
# character set, otherwise an early error is raised.
output_charset = charset.output_codec or 'us-ascii'
if output_charset != _charset.UNKNOWN8BIT:
try:

View File

@ -83,7 +83,7 @@ def formataddr(pair, charset='utf-8'):
'utf-8'.
"""
name, address = pair
# The address MUST (per RFC) be ascii, so throw a UnicodeError if it isn't.
# The address MUST (per RFC) be ascii, so raise an UnicodeError if it isn't.
address.encode('ascii')
if name:
try:

View File

@ -1178,7 +1178,7 @@ if HAVE_SSL:
ssl_context - a SSLContext object that contains your certificate chain
and private key (default: None)
Note: if ssl_context is provided, then parameters keyfile or
certfile should not be set otherwise ValueError is thrown.
certfile should not be set otherwise ValueError is raised.
for more documentation see the docstring of the parent class IMAP4.
"""

View File

@ -4,7 +4,7 @@ builtin open function is defined in this module.
At the top of the I/O hierarchy is the abstract base class IOBase. It
defines the basic interface to a stream. Note, however, that there is no
separation between reading and writing to streams; implementations are
allowed to throw an IOError if they do not support a given operation.
allowed to raise an IOError if they do not support a given operation.
Extending IOBase is RawIOBase which deals simply with the reading and
writing of raw bytes to a stream. FileIO subclasses RawIOBase to provide

View File

@ -1349,7 +1349,7 @@ class Logger(Filterer):
"""
sinfo = None
if _srcfile:
#IronPython doesn't track Python frames, so findCaller throws an
#IronPython doesn't track Python frames, so findCaller raises an
#exception on some versions of IronPython. We trap it here so that
#IronPython can use logging.
try:

View File

@ -290,7 +290,7 @@ def _exit_function(info=info, debug=debug, _run_finalizers=_run_finalizers,
if current_process() is not None:
# We check if the current process is None here because if
# it's None, any call to ``active_children()`` will throw
# it's None, any call to ``active_children()`` will raise
# an AttributeError (active_children winds up trying to
# get attributes from util._current_process). One
# situation where this can happen is if someone has

View File

@ -504,7 +504,7 @@ def find_loader(fullname):
return importlib.find_loader(fullname, path)
except (ImportError, AttributeError, TypeError, ValueError) as ex:
# This hack fixes an impedance mismatch between pkgutil and
# importlib, where the latter throws other errors for cases where
# importlib, where the latter raises other errors for cases where
# pkgutil previously threw ImportError
msg = "Error while finding loader for {!r} ({}: {})"
raise ImportError(msg.format(fullname, type(ex), ex)) from ex

View File

@ -621,7 +621,7 @@ class TemporaryDirectory(object):
def __init__(self, suffix="", prefix=template, dir=None):
self._closed = False
self.name = None # Handle mkdtemp throwing an exception
self.name = None # Handle mkdtemp raising an exception
self.name = mkdtemp(suffix, prefix, dir)
def __repr__(self):

View File

@ -50,7 +50,7 @@ class CodeopTests(unittest.TestCase):
'''succeed iff str is the start of an invalid piece of code'''
try:
compile_command(str,symbol=symbol)
self.fail("No exception thrown for invalid code")
self.fail("No exception raised for invalid code")
except SyntaxError:
self.assertTrue(is_syntax)
except OverflowError:

View File

@ -100,7 +100,7 @@ class DocXMLRPCHTTPGETServer(unittest.TestCase):
self.assertEqual(response.status, 200)
self.assertEqual(response.getheader("Content-type"), "text/html")
# Server throws an exception if we don't start to read the data
# Server raises an exception if we don't start to read the data
response.read()
def test_invalid_get_response(self):

View File

@ -115,7 +115,7 @@ class SimpleIMAPHandler(socketserver.StreamRequestHandler):
return
line += part
except IOError:
# ..but SSLSockets throw exceptions.
# ..but SSLSockets raise exceptions.
return
if line.endswith(b'\r\n'):
break

View File

@ -1073,7 +1073,7 @@ class MinidomTest(unittest.TestCase):
'<?xml version="1.0" encoding="utf-16"?>'
'<foo>\u20ac</foo>'.encode('utf-16'))
# Verify that character decoding errors throw exceptions instead
# Verify that character decoding errors raise exceptions instead
# of crashing
self.assertRaises(UnicodeDecodeError, parseString,
b'<fran\xe7ais>Comment \xe7a va ? Tr\xe8s bien ?</fran\xe7ais>')

View File

@ -202,33 +202,33 @@ class StatAttributeTests(unittest.TestCase):
try:
result[200]
self.fail("No exception thrown")
self.fail("No exception raised")
except IndexError:
pass
# Make sure that assignment fails
try:
result.st_mode = 1
self.fail("No exception thrown")
self.fail("No exception raised")
except AttributeError:
pass
try:
result.st_rdev = 1
self.fail("No exception thrown")
self.fail("No exception raised")
except (AttributeError, TypeError):
pass
try:
result.parrot = 1
self.fail("No exception thrown")
self.fail("No exception raised")
except AttributeError:
pass
# Use the stat_result constructor with a too-short tuple.
try:
result2 = os.stat_result((10,))
self.fail("No exception thrown")
self.fail("No exception raised")
except TypeError:
pass
@ -273,20 +273,20 @@ class StatAttributeTests(unittest.TestCase):
# Make sure that assignment really fails
try:
result.f_bfree = 1
self.fail("No exception thrown")
self.fail("No exception raised")
except AttributeError:
pass
try:
result.parrot = 1
self.fail("No exception thrown")
self.fail("No exception raised")
except AttributeError:
pass
# Use the constructor with a too-short tuple.
try:
result2 = os.statvfs_result((10,))
self.fail("No exception thrown")
self.fail("No exception raised")
except TypeError:
pass

View File

@ -824,7 +824,7 @@ class PosixTester(unittest.TestCase):
posix.rename(support.TESTFN + 'ren', support.TESTFN)
raise
else:
posix.stat(support.TESTFN) # should not throw exception
posix.stat(support.TESTFN) # should not raise exception
finally:
posix.close(f)
@ -842,7 +842,7 @@ class PosixTester(unittest.TestCase):
def test_unlink_dir_fd(self):
f = posix.open(posix.getcwd(), posix.O_RDONLY)
support.create_empty_file(support.TESTFN + 'del')
posix.stat(support.TESTFN + 'del') # should not throw exception
posix.stat(support.TESTFN + 'del') # should not raise exception
try:
posix.unlink(support.TESTFN + 'del', dir_fd=f)
except:

View File

@ -152,7 +152,7 @@ class PtyTest(unittest.TestCase):
# platform-dependent amount of data is written to its fd. On
# Linux 2.6, it's 4000 bytes and the child won't block, but on OS
# X even the small writes in the child above will block it. Also
# on Linux, the read() will throw an OSError (input/output error)
# on Linux, the read() will raise an OSError (input/output error)
# when it tries to read past the end of the buffer but the child's
# already exited, so catch and discard those exceptions. It's not
# worth checking for EIO.

View File

@ -389,7 +389,7 @@ class XmlgenTest(unittest.TestCase):
def test_5027_1(self):
# The xml prefix (as in xml:lang below) is reserved and bound by
# definition to http://www.w3.org/XML/1998/namespace. XMLGenerator had
# a bug whereby a KeyError is thrown because this namespace is missing
# a bug whereby a KeyError is raised because this namespace is missing
# from a dictionary.
#
# This test demonstrates the bug by parsing a document.
@ -415,7 +415,7 @@ class XmlgenTest(unittest.TestCase):
def test_5027_2(self):
# The xml prefix (as in xml:lang below) is reserved and bound by
# definition to http://www.w3.org/XML/1998/namespace. XMLGenerator had
# a bug whereby a KeyError is thrown because this namespace is missing
# a bug whereby a KeyError is raised because this namespace is missing
# from a dictionary.
#
# This test demonstrates the bug by direct manipulation of the

View File

@ -107,7 +107,7 @@ class InterProcessSignalTests(unittest.TestCase):
# This wait should be interrupted by the signal's exception.
self.wait(child)
time.sleep(1) # Give the signal time to be delivered.
self.fail('HandlerBCalled exception not thrown')
self.fail('HandlerBCalled exception not raised')
except HandlerBCalled:
self.assertTrue(self.b_called)
self.assertFalse(self.a_called)
@ -143,7 +143,7 @@ class InterProcessSignalTests(unittest.TestCase):
# test-running process from all the signals. It then
# communicates with that child process over a pipe and
# re-raises information about any exceptions the child
# throws. The real work happens in self.run_test().
# raises. The real work happens in self.run_test().
os_done_r, os_done_w = os.pipe()
with closing(os.fdopen(os_done_r, 'rb')) as done_r, \
closing(os.fdopen(os_done_w, 'wb')) as done_w:

View File

@ -58,7 +58,7 @@ if HAVE_UNIX_SOCKETS:
def simple_subprocess(testcase):
pid = os.fork()
if pid == 0:
# Don't throw an exception; it would be caught by the test harness.
# Don't raise an exception; it would be caught by the test harness.
os._exit(72)
yield None
pid2, status = os.waitpid(pid, 0)

View File

@ -422,7 +422,7 @@ class RaisingTraceFuncTestCase(unittest.TestCase):
except ValueError:
pass
else:
self.fail("exception not thrown!")
self.fail("exception not raised!")
except RuntimeError:
self.fail("recursion counter not reset")

View File

@ -175,7 +175,7 @@ class TimeTestCase(unittest.TestCase):
def test_strptime(self):
# Should be able to go round-trip from strftime to strptime without
# throwing an exception.
# raising an exception.
tt = time.gmtime(self.t)
for directive in ('a', 'A', 'b', 'B', 'c', 'd', 'H', 'I',
'j', 'm', 'M', 'p', 'S',

View File

@ -80,7 +80,7 @@ class UUTest(unittest.TestCase):
out = io.BytesIO()
try:
uu.decode(inp, out)
self.fail("No exception thrown")
self.fail("No exception raised")
except uu.Error as e:
self.assertEqual(str(e), "Truncated input file")
@ -89,7 +89,7 @@ class UUTest(unittest.TestCase):
out = io.BytesIO()
try:
uu.decode(inp, out)
self.fail("No exception thrown")
self.fail("No exception raised")
except uu.Error as e:
self.assertEqual(str(e), "No valid begin line found in input file")

View File

@ -245,7 +245,7 @@ class LocalWinregTests(BaseWinregTests):
def test_changing_value(self):
# Issue2810: A race condition in 2.6 and 3.1 may cause
# EnumValue or QueryValue to throw "WindowsError: More data is
# EnumValue or QueryValue to raise "WindowsError: More data is
# available"
done = False
@ -291,7 +291,7 @@ class LocalWinregTests(BaseWinregTests):
def test_dynamic_key(self):
# Issue2810, when the value is dynamically generated, these
# throw "WindowsError: More data is available" in 2.6 and 3.1
# raise "WindowsError: More data is available" in 2.6 and 3.1
try:
EnumValue(HKEY_PERFORMANCE_DATA, 0)
except OSError as e:

View File

@ -1024,7 +1024,7 @@ class OtherTests(unittest.TestCase):
with zipfile.ZipFile(data, mode="w") as zipf:
zipf.writestr("foo.txt", "O, for a Muse of Fire!")
# This is correct; calling .read on a closed ZipFile should throw
# This is correct; calling .read on a closed ZipFile should raise
# a RuntimeError, and so should calling .testzip. An earlier
# version of .testzip would swallow this exception (and any other)
# and report that the first file in the archive was corrupt.

View File

@ -149,7 +149,7 @@ def _tkerror(err):
pass
def _exit(code=0):
"""Internal function. Calling it will throw the exception SystemExit."""
"""Internal function. Calling it will raise the exception SystemExit."""
try:
code = int(code)
except ValueError:

View File

@ -542,10 +542,10 @@ class TestCase(object):
return '%s : %s' % (safe_repr(standardMsg), safe_repr(msg))
def assertRaises(self, excClass, callableObj=None, *args, **kwargs):
"""Fail unless an exception of class excClass is thrown
"""Fail unless an exception of class excClass is raised
by callableObj when invoked with arguments args and keyword
arguments kwargs. If a different type of exception is
thrown, it will not be caught, and the test case will be
raised, it will not be caught, and the test case will be
deemed to have suffered an error, exactly as for an
unexpected exception.

View File

@ -139,9 +139,9 @@ def validator(application):
When applied between a WSGI server and a WSGI application, this
middleware will check for WSGI compliancy on a number of levels.
This middleware does not modify the request or response in any
way, but will throw an AssertionError if anything seems off
way, but will raise an AssertionError if anything seems off
(except for a failure to close the application iterator, which
will be printed to stderr -- there's no way to throw an exception
will be printed to stderr -- there's no way to raise an exception
at that point).
"""

View File

@ -12,7 +12,7 @@ class SAXException(Exception):
the application: you can subclass it to provide additional
functionality, or to add localization. Note that although you will
receive a SAXException as the argument to the handlers in the
ErrorHandler interface, you are not actually required to throw
ErrorHandler interface, you are not actually required to raise
the exception; instead, you can simply read the information in
it."""
@ -50,7 +50,7 @@ class SAXParseException(SAXException):
the original XML document. Note that although the application will
receive a SAXParseException as the argument to the handlers in the
ErrorHandler interface, the application is not actually required
to throw the exception; instead, it can simply read the
to raise the exception; instead, it can simply read the
information in it and take a different action.
Since this exception is a subclass of SAXException, it inherits
@ -62,7 +62,7 @@ class SAXParseException(SAXException):
self._locator = locator
# We need to cache this stuff at construction time.
# If this exception is thrown, the objects through which we must
# If this exception is raised, the objects through which we must
# traverse to get this information may be deleted by the time
# it gets caught.
self._systemId = self._locator.getSystemId()

View File

@ -68,7 +68,7 @@ class XMLReader:
SAX parsers are not required to provide localization for errors
and warnings; if they cannot support the requested locale,
however, they must throw a SAX exception. Applications may
however, they must raise a SAX exception. Applications may
request a locale change in the middle of a parse."""
raise SAXNotSupportedException("Locale support not implemented")

View File

@ -811,7 +811,7 @@ class _MultiCallMethod:
class MultiCallIterator:
"""Iterates over the results of a multicall. Exceptions are
thrown in response to xmlrpc faults."""
raised in response to xmlrpc faults."""
def __init__(self, results):
self.results = results

View File

@ -60,7 +60,7 @@ PyDoc_STRVAR(module_doc,
"At the top of the I/O hierarchy is the abstract base class IOBase. It\n"
"defines the basic interface to a stream. Note, however, that there is no\n"
"separation between reading and writing to streams; implementations are\n"
"allowed to throw an IOError if they do not support a given operation.\n"
"allowed to raise an IOError if they do not support a given operation.\n"
"\n"
"Extending IOBase is RawIOBase which deals simply with the reading and\n"
"writing of raw bytes to a stream. FileIO subclasses RawIOBase to provide\n"

View File

@ -696,7 +696,7 @@ parser_tuple2st(PyST_Object *self, PyObject *args, PyObject *kw)
err_string("parse tree does not use a valid start symbol");
}
}
/* Make sure we throw an exception on all errors. We should never
/* Make sure we raise an exception on all errors. We should never
* get this, but we'd do well to be sure something is done.
*/
if (st == NULL && !PyErr_Occurred())
@ -802,7 +802,7 @@ build_node_children(PyObject *tuple, node *root, int *line_num)
else if (!ISNONTERMINAL(type)) {
/*
* It has to be one or the other; this is an error.
* Throw an exception.
* Raise an exception.
*/
PyObject *err = Py_BuildValue("os", elem, "unknown node type.");
PyErr_SetObject(parser_error, err);
@ -854,7 +854,7 @@ build_node_tree(PyObject *tuple)
if (ISTERMINAL(num)) {
/*
* The tuple is simple, but it doesn't start with a start symbol.
* Throw an exception now and be done with it.
* Raise an exception now and be done with it.
*/
tuple = Py_BuildValue("os", tuple,
"Illegal syntax-tree; cannot start with terminal symbol.");

View File

@ -798,7 +798,7 @@ _parse_off_t(PyObject* arg, void* addr)
#if defined _MSC_VER && _MSC_VER >= 1400
/* Microsoft CRT in VS2005 and higher will verify that a filehandle is
* valid and throw an assertion if it isn't.
* valid and raise an assertion if it isn't.
* Normally, an invalid fd is likely to be a C program error and therefore
* an assertion can be useful, but it does contradict the POSIX standard
* which for write(2) states:

View File

@ -92,7 +92,7 @@ def test_cpickle(_cache={}):
def test_compiler_recursion():
# The compiler uses a scaling factor to support additional levels
# of recursion. This is a sanity check of that scaling to ensure
# it still throws RuntimeError even at higher recursion limits
# it still raises RuntimeError even at higher recursion limits
compile("()" * (10 * sys.getrecursionlimit()), "<single>", "single")
def check_limit(n, test_func_name):

View File

@ -2,7 +2,7 @@
'''
Small wsgiref based web server. Takes a path to serve from and an
optional port number (defaults to 8000), then tries to serve files.
Mime types are guessed from the file names, 404 errors are thrown
Mime types are guessed from the file names, 404 errors are raised
if the file is not found. Used for the make serve target in Doc.
'''
import sys