In article <3AE5C1EB.CE354D2A at letterror.com>, Just van Rossum <just at letterror.com> writes >Michael Hudson wrote: >> >> Robin Becker <robin at jessikat.fsnet.co.uk> writes: >> >> > no I was testing for another possible value and when that fails I >> > try a secondd argument type; I just didn't realise that PyArg_Parse >> > would barf if an error was already set. >> >> This is because there's no way to tell from the return value of >> PyDouble_FromDouble whether an error has occurred, so the code for >> PyArg_Parse has to check PyError_Occurred. > >But then again: _any_ API may barf if it gets called while an exception >is set. You get similar troubles if you set an exception but don't return >NULL to Python. So I think it's good advice to _always_ do PyErr_Clear() >after you ignore an exception. > >Just of course you're right, I always try and clear; it's not always obvious which routines set exceptions. For some reason I thought that the integer return implied the user had to check and set an exception, but then this thing is like PyArg_ParseTuple anyhow so I was just being dumber than usual. -- Robin Becker
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4