Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 3 of 3
  1. #1
    New Coder
    Join Date
    Dec 2009
    Posts
    40
    Thanks
    4
    Thanked 0 Times in 0 Posts

    Process different commands based on error

    Okay, I have this:
    Code:
    if com == 'del':
            rem = raw_input("What file: ")
            rea = raw_input("Really remove %s? (y/n)" % rem)
            if rea in ('y'):
                    try:
                            os.remove(rem)
                    except OSError:
                            print "That is a directory, del deletes files. Use ddel instead."
                            raw_input("Press ENTER to return.")
                            goto .home
                    else:
                            goto .home
            elif rea in ('n'):
                    goto .home
    Now, don't worry about the goto, I have a module installed for it, and I know you're not supposed to use it... I'm using it on my computer though. Anyway.

    In that script you should see the except OSError:, that works great, but there's more than one type of error you can get with it. How can I run different commands based on the different errors? (All of them will be OSErrors)\

    Thanks
    Last edited by pippin418; 05-08-2010 at 01:10 AM.

  • #2
    Regular Coder Samhain13's Avatar
    Join Date
    Aug 2008
    Location
    Pilipinas
    Posts
    169
    Thanks
    4
    Thanked 18 Times in 18 Posts
    More stuff here: http://docs.python.org/tutorial/errors.html

    For your problem:
    Code:
    some_file_name = "whatever"
    
    try:
        os.remove(some_file_name)
    
    except OSError as (errno, strerror):
        # Decide what to do based on error code:
        # File doesn't exist.
        if errno == 2:
            print "Do something..."
        # Trying to delete a directory.
        elif errno == 21:
            print "Do something else..."
        # elif errno = ??: do something else....
    
    else:
        print "LOLWUT?"
    I am a Man of Truth. I am a Free Human Person. I am a Peacemaker.
    ** Independent Multimedia Artist in Pasig **

  • #3
    New Coder
    Join Date
    Dec 2009
    Posts
    40
    Thanks
    4
    Thanked 0 Times in 0 Posts
    Thanks a lot.
    Last edited by pippin418; 05-09-2010 at 08:01 AM.


  •  

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •