Как отловить ошибку при работе в class?
Ну можно и так например:>>> class SomeClass:
...   pass
...
>>> cls = SomeClass()
>>> print cls.some_var
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: SomeClass instance has no attribute 'some_var'
>>> print hasattr(cls, 'some_var')
False
>>> if not hasattr(cls, 'some_var'):
...   cls.some_var = 1
...
>>> print cls.some_var
1
>>> print hasattr(cls, 'some_var')
True
>>>
встроенной функцией hasattr - вы проверяете есть ли свойство у  объекта класса. Встроенной функцией callable вы дополнительно можете убедиться что это именно переменная:>>> callable(getattr(cls, 'some_var'))
False
Выполнение функции не прерывается.
Ну можно и так например:>>> class SomeClass:
...   pass
...
>>> cls = SomeClass()
>>> print cls.some_var
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: SomeClass instance has no attribute 'some_var'
>>> print hasattr(cls, 'some_var')
False
>>> if not hasattr(cls, 'some_var'):
...   cls.some_var = 1
...
>>> print cls.some_var
1
>>> print hasattr(cls, 'some_var')
True
>>>
встроенной функцией hasattr - вы проверяете есть ли свойство у  объекта класса. Встроенной функцией callable вы дополнительно можете убедиться что это именно переменная:>>> callable(getattr(cls, 'some_var'))
False
Выполнение функции не прерывается.