On 06/07/14 22:00, Ali Mammadov wrote:
common pratice, I want my function to check user's input(in this case
it's file name) and re-ask it again and again(until correct) offering
him two choices: re-enter file name or close program.I've decided to use
try/except construction in this particular task.
Thats the wrong solution.
try/except is for catching errors not repeating actions.
You need to combine the try/except with a loop.
BTW, I created a small gist located here
<https://gist.github.com/bca59570ea5fd365c672> which demonstrates my
problem.
For short (<100lines) example just post it in your message, it saves a
lot of extra jumping around. Here it is:
---------------
def makelgpwdcombs(brutelistname):
try:
blst = open(brutelistname, 'r')
except:
print("[-] Invalid file name or insufficient priviliges")
else:
print("[+] File opened. Working...")
--------------------
Drop the else clause and put the try/except inside a while...
def makelgpwdcombs(brutelistname):
while True:
try:
blst = open(brutelistname, 'r')
break # exit loop if no error
except:
print("[-] Invalid file name or insufficient priviliges")
print("[+] File opened. Working...") # only after valid input
loops are for repeating, try/except is for catching errors.
Use the right tool for the job.
HTH
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.flickr.com/photos/alangauldphotos
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor