例外を投げる

throw Exceptionと書きたいところだが、raise とかく

raise Excetion , "エラーです"
raise Exception("エラーです")

なぜ2番目の書き方がゆるされるか? ExceptionがClassだから。

ExceptionがClassということは、ユーザー定義のExceptionを利用できる

class SampleExcepion(Exception): #Exceptionを継承
    def __init__(self, value):
        self.value = value
    def __str__(self):
        return repr(self.value)

try:
   #statements
   raise SampleExcepion("foooo")
except SampleExcepion, e :
  print e.value

##output
# 'foooo'