Mercurial > cpython-lru_cache-weakref
diff Doc/api/exceptions.tex @ 21160:73384e13bd2a legacy-trunk
Clarify that the Python runtime may behave mysteriously when an exception
is not handled properly.
This closes SF bug #485153.
| author | Fred Drake <fdrake@acm.org> |
|---|---|
| date | Mon, 03 Dec 2001 17:56:09 +0000 |
| parents | 9fecba526936 |
| children | 1c838be6d004 0f1ae37cd8eb |
line wrap: on
line diff
--- a/Doc/api/exceptions.tex Mon Dec 03 17:32:27 2001 +0000 +++ b/Doc/api/exceptions.tex Mon Dec 03 17:56:09 2001 +0000 @@ -8,11 +8,19 @@ this on success, but will set it to indicate the cause of the error on failure. Most functions also return an error indicator, usually \NULL{} if they are supposed to return a pointer, or \code{-1} if they -return an integer (exception: the \cfunction{PyArg_Parse*()} functions -return \code{1} for success and \code{0} for failure). When a -function must fail because some function it called failed, it +return an integer (exception: the \cfunction{PyArg_*()} functions +return \code{1} for success and \code{0} for failure). + +When a function must fail because some function it called failed, it generally doesn't set the error indicator; the function it called -already set it. +already set it. It is responsible for either handling the error and +clearing the exception or returning after cleaning up any resources it +holds (such as object references or memory allocations); it should +\emph{not} continue normally if it is not prepared to handle the +error. If returning due to an error, it is important to indicate to +the caller that an error has been set. If the error is not handled or +carefully propogated, additional calls into the Python/C API may not +behave as intended and may fail in mysterious ways. The error indicator consists of three Python objects corresponding to \withsubitem{(in module sys)}{
