Try: rather than if :
Ian Kelly
ian.g.kelly at gmail.com
Mon Dec 14 18:53:49 EST 2015
On Mon, Dec 14, 2015 at 4:48 PM, Vincent Davis <vincent at vincentdavis.net> wrote:
> On Mon, Dec 14, 2015 at 4:14 PM, Cameron Simpson <cs at zip.com.au> wrote:
>
>> First, notice that the code inside the try/except _only_ fetches the
>> attribute. Your version calls the "write" attribute, and also accesses
>> handle.name. Either of those might also emit AttributeError, and should
>> probably not be silently caught.
>>
>
> I think the intent of the original code was to check if handle had the
> attribute "name", I don't think the attribute "write" was the issue.
>
> So then possibly this based on your suggestion:
> try:
> write = handel.write
> except AttributeError:
> raise
Except that catching an exception just to immediately re-raise it is
silly. This would be better:
try:
name = handle.name
except AttributeError:
pass
else:
handle.write("# Report_file: %s\n" % name)
More information about the Python-list
mailing list