Ярлыки

.htaccess (4) тестирование (8) шаблоны проектирования (3) css (5) Debian (6) docker (2) Doctrine2 (6) Git (6) html (4) java (6) javascript (13) jquery (11) LFS (3) linux (23) mac os (4) mod_rewrite (2) MSSQL (4) MySQL (18) ORM Doctrine (17) patterns (3) PDO (3) perl (7) PHP (64) PHPUnit (8) Python (15) SEO (2) Silex (1) SimpleXML (1) SQL (14) ssh (4) Ubuntu (24) Yii1 (1) Zend Framework (19) ZendFramework2 (8)

понедельник, 28 марта 2011 г.

Python. Обработка исключений (пример).

import sys
import traceback

...

try:
    resumes.append(resume.get_data())

# В методе get_data() возникает исключение
except Exception:
    registry = Registry()

    log = open(registry.get('error_log') , 'a')
    log.write("\nresume #" + resume_id + " error\n")

    # Пишем трассировку исключения в лог
    print traceback.print_exc(file = log)

    if(registry.is_debug_mode()):
        print traceback.print_exc(file = sys.stdout)

    log.close()

...


Класс Registry (упрощенный, для реальной работы не подходит)
По поводу реализации singletone в python см. http://code.activestate.com/recipes/66531/

class Registry:
    __shared_state = {}

    vars = {}

    def __init__(self):
        self.__dict__ = self.__shared_state

    def set(self, key, value):
        self.vars[key] = value

    def get(self, key):
        return self.vars[key]

    def is_debug_mode(self):
        if(self.vars['mode'] == 'debug'):
            return True
        return False

Комментариев нет:

Отправить комментарий