Pacific Beach Drive

Mike's Drive.

Follow me on GitHub
Strings   Variables   Lists   Tuples   Dictionary  
Control   Function   Files   Exceptions      
OOP   Algorithm   Data Structure   back      

Handling Exceptions || file and exception

The try block
lets you test a block of code for errors.
The except block
lets you handle the error.
The else block
lets you execute code when there is no error.
The finally block
lets you execute code, regardless of the result of the try- and except blocks.

Example

  • open a file without write permission
    # 
    try:
     fh = open("testfile", "r")
     fh.write("My test file for exception handling!!")
    except IOError:
     print "Error: can\'t find file or read data"
    else:
     print "Written content in the file successfully"
    
try:
   fh = open("testfile", "w")
   try:
      fh.write("My test file for exception handling!!")
   finally:
      print "Going to close the file"
      fh.close()
except IOError:
   print "Error: can\'t find file or read data"

Handling Exceptions || def/program and exception

try:
    value = int(input("Enter a number between 1 and 10: "))
    #try block handles exceptions (getting input from the user)
except ValueError:
    # except block looks for a specific exception: ValueError.
    print("You must type a number between 1 and 10!") 
else:
    #else block - executed when try block doesn’t generate an exception (is successful). 
    if (Value > 0) and (Value <= 10): 
        print("You entered: ", value)
    else:
        print("Wait, wat? You entered the wrong digits!")
try:
    Value1 = int(input("Type the first number: ")) 
    Value2 = int(input("Type the second number: ")) 
    Output = Value1 / Value2
except ValueError:
    print("You must type a whole number!")
except KeyboardInterrupt: 
    print("You pressed Ctrl+C!")
except ArithmeticError:
    print("An undefined math error occurred.")
except ZeroDivisionError: 
    print("Attempted to divide by zero!")
else:
    print(Output)
  • this will save an IndexError exception in the variable err
  • any other exceptoion in the variable other
short_list = [1,2,3]
while True:
   value = input('Position [q to quit]?')
   if value == 'q':
      break
   try:
      position = int(value)
      print(short_list[position])
   except IndexError as err:
      print('Bad Index', position)
   except Exception as other:
      print('Something else broke: ', other)

for more visuality - maybe I should put it in a def and doc string?

Exception Description
ArithmeticError Raised when an error occurs in numeric calculations
AssertionError Raised when an assert statement fails
AttributeError Raised when attribute reference or assignment fails
Exception Base class for all exceptions
EOFError Raised when the input() method hits an “end of file” condition (EOF)
FloatingPointError Raised when a floating point calculation fails
GeneratorExit Raised when a generator is closed (with the close() method)
ImportError Raised when an imported module does not exist
IndentationError Raised when indentation is not correct
IndexError Raised when an index of a sequence does not exist
KeyError Raised when a key does not exist in a dictionary
KeyboardInterrupt Raised when the user presses Ctrl+c, Ctrl+z or Delete
LookupError Raised when errors raised cant be found
MemoryError Raised when a program runs out of memory
NameError Raised when a variable does not exist
NotImplementedError Raised when an abstract method requires an inherited class to override the method
OSError Raised when a system related operation causes an error
OverflowError Raised when the result of a numeric calculation is too large
ReferenceError Raised when a weak reference object does not exist
RuntimeError Raised when an error occurs that do not belong to any specific exceptions
StopIteration Raised when the next() method of an iterator has no further values
SyntaxError Raised when a syntax error occurs
TabError Raised when indentation consists of tabs or spaces
SystemError Raised when a system error occurs
SystemExit Raised when the sys.exit() function is called
TypeError Raised when two different types are combined
UnboundLocalError Raised when a local variable is referenced before assignment
UnicodeError Raised when a unicode problem occurs
UnicodeEncodeError Raised when a unicode encoding problem occurs
UnicodeDecodeError Raised when a unicode decoding problem occurs
UnicodeTranslateError Raised when a unicode translation problem occurs
ValueError Raised when there is a wrong value in a specified data type
ZeroDivisionError Raised when the second operator in a division is zero