Try/except vs. if/else
Stephen Horne
$$$$$$$$$$$$$$$$$ at $$$$$$$$$$$$$$$$$$$$.co.uk
Mon Sep 29 14:08:23 EDT 2003
More information about the Python-list mailing list
Mon Sep 29 14:08:23 EDT 2003
- Previous message (by thread): Try/except vs. if/else
- Next message (by thread): using poplib to retrieve messages sent from a certain address
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Mon, 29 Sep 2003 10:33:27 +0100, Tim Rowe <tim at remove_if_not_spam.digitig.co.uk> wrote: >Internal constructs don't bother me -- ultimately it all comes down to >machine code which will be a mass of goto's. That doesn't mean that >my code should be (could be!) a mass of goto's. > >And the last time I needed a goto for anything I was programming in >BASIC; I don't need to use exceptions to emulate it in a language with >decent flow control constructs (Python qualifies, of course!). Ah - a good old goto debate ;-) I have long claimed that goto is useful in rare circumstances, that it can be clearer and more maintainable than structured code in those rare cases, and that while anything can be abused it is still perfectly possible for a good programmer to use it responsibly and to refactor when the code becomes too messy. Structured, OO, and indeed any style of programming can become unreadable and unmaintainable (hence the fuss about refactoring). That said, it was quite a shock when I actually found a case where I needed a goto about six months ago. Quite literally I made several attempts at writing a function in a structured way and got it wrong each time. Each time I came back to it the previous version seemed a horrible mess so I rewrote it. Eventually I figured this was stupid, especially as it didn't seem so hard in my head. I put that mental picture onto paper - and as I did so I realised it simply wasn't a structured job. It was very much a state transition model. But because it completes all its work in one go, and doesn't need to maintain the state between calls, it simply hadn't occurred to me to think of it that way. I remember telling a college lecturer that if state transition models are appropriate for some things then so must gotos be appropriate, and that in a 'short running' state machine a goto would be the logical way to implement the transitions. At the time, I didn't think it would be so long before I found an example ;-) Anyway, this example was in some fairly low level library code I was writing in C++. I don't see any need for goto in Python, trust that it will never be added, and don't like to see exceptions abused that way. Just sharing a rather pointless anecdote. -- Steve Horne steve at ninereeds dot fsnet dot co dot uk
- Previous message (by thread): Try/except vs. if/else
- Next message (by thread): using poplib to retrieve messages sent from a certain address
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list