Are you used to writing long sections of code to validate user input? Perhaps you are, or perhaps you have shortened such code over the years using
Regular Expressions where you can specify a pattern to be matched. One regular expression can replace 30 lines of other code.
But in Python, Java and some other languages there's an even more elegant alternative in some circumstances - exceptions. The idea is that you
try to perform the action you require on your input data rather than 100% validating it first. If the action works, great and if it fails you
catch the
exception and handle the error condition in that block.
Like an example? Here's a piece of Python code to read an integer from the program's user, and to keep re-prompting if the user enters a value that cannot be treated as a legitimate integer.
while 1:
val = raw_input("give an integer ... ")
try:
ival = int(val)
break
except:
print "an integer is a WHOLE NUMBER! "
print ival (written 2007-06-18)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
Y109 - Python - Exceptions [4029] Exception, Lambda, Generator, Slice, Dict - examples in one Python program - (2013-03-04)
[3930] Reporting the full stack trace when you catch a Python exception - (2012-11-22)
[3913] How many times ... has this loco headed west through Tenby? - Python exceptions - (2012-11-05)
[3664] Error checking in a Python program - making your program robust via exceptions - (2012-03-22)
[3441] Pressing ^C in a Python program. Also Progress Bar. - (2011-09-15)
[3433] Exceptions - a fail-safe way of trapping things that may go wrong - (2011-09-11)
[3177] Insurance against any errors - Volcanoes and Python - (2011-02-19)
[2998] Using an exception to initialise a static variable in a Python function / method - (2010-10-13)
[2994] Python - some common questions answered in code examples - (2010-10-10)
[2622] Handling unusual and error conditions - exceptions - (2010-02-03)
[2408] Robust user input (exception handling) example in Python - (2009-09-17)
[2368] Python - fresh examples of all the fundamentals - (2009-08-20)
[2281] Python - using exceptions to set a fallback - (2009-07-12)
[2018] UnboundLocalError - Python Message - (2009-01-31)
[1042] Nested exceptions in Python - (2007-01-18)
[381] Exceptions in Python - (2005-07-17)
55e5
Some other Articles
Fancy going to Glastonbury?End of File on a Java BufferedReaderThe kind spirit of MelkshamWhat proportion of our web traffic is robots?Trying things in PythonOutputting numbers as words - MySQL with Perl or PHPA review of a week and a trip to BruggeHorses of BruggeBathtub exampleSur le Continent