2015-04-15 1 views
0

У меня есть этот простой код для установки лог-файл в определенном месте: (Python 2.7.3)трудное время ловли окружающей среды Exception в Python

import os, errno 
try: 
    CCustomLogger.setup_daemon_logger('TRexServer', "/var/log/trex/trex_daemon_server.log") 
except EnvironmentError, e: 
     print "caught some exception...!" 
     if e.errno == errno.EACCES: # catching permission denied error 
      print "Launching user must have sudo privileges in order to run T-Rex daemon." 
     exit(1) 

Однако, когда я пытаюсь запустить его, я все еще получаю ошибки и не может поймать его:

Traceback (most recent call last): 
    File "trex_daemon_server.py", line 50, in <module> 
    handler = logging.FileHandler("/var/log/trex/trex_daemon_server.log") 
    File "/usr/lib64/python2.7/logging/__init__.py", line 897, in __init__ 
    StreamHandler.__init__(self, self._open()) 
    File "/usr/lib64/python2.7/logging/__init__.py", line 916, in _open 
    stream = open(self.baseFilename, self.mode) 
IOError: [Errno 13] Permission denied: '/var/log/trex/trex_daemon_server.log' 

что странно здесь является то, что даже some error печати в не печатается.

Я Googled немного и узнал, что это может быть вызвано ошибкой отступа (see here for example), но я думаю, что это не так ...

Что еще может быть проблема?

Спасибо,

+0

Я не могу воспроизвести это. EnvironmentError поднимается, если я пытаюсь это сделать –

+0

@ cyber101 Вы уверены, что программа остановлена? Может быть, исключение просто регистрируется. –

ответ

0

код, как представляется, повышение IOError, а не EnvironmentError.

+1

Основываясь на [иерархии исключений] (https://docs.python.org/2/library/exceptions.html#exception-hierarchy), он должен выполнять эту работу, так как IOError и OSError расширяет EnvironmentError. – cyber101

Смежные вопросы