Demonstrating a programmer-defined exception class. : Error Exception « Statement « Python Tutorial






import math

class NegativeNumberError( ArithmeticError ):
   """Attempted improper operation on negative number."""
   pass

def squareRoot( number ):
   """Computes square root of number. Raises NegativeNumberError
   if number is less than 0."""

   if number < 0:
      raise NegativeNumberError, "Square root of negative number not permitted"

   return math.sqrt( number )

while 1:
   try:
      userValue = float( raw_input( "\nPlease enter a number: " ) )
      print squareRoot( userValue )
   except ValueError:
      print "The entered value is not a number"
   except NegativeNumberError, exception:
      print exception
   else:
      break








3.9.Error Exception
3.9.1.Catching Exceptions with try..except
3.9.2.ZeroDivisionError: division by any numeric zero
3.9.3.IndexError: request for an out-of-range index for sequence
3.9.4.KeyError: request for a non-existent dictionary key
3.9.5.AssertionError
3.9.6.IOError: input/output error
3.9.7.AttributeError: attempt to access an unknown object attribute
3.9.8.try-except Statement
3.9.9.try Statement with Multiple excepts
3.9.10.except Statement with Multiple Exceptions
3.9.11.replace our single error string with the string representation of the exception argument.
3.9.12.Demonstrating a programmer-defined exception class.
3.9.13.Exceptions Can Be Classes
3.9.14.Exception Classes
3.9.15.String-Based Exceptions
3.9.16.Working with the Exception Information