Во-первых, я не уверен, что мой подход правильный, поэтому я открыт для различных предложений.
Если операторы try / кроме часто повторяются в коде, есть ли хорошие способысокращать их или избегать их полной записи?
try:
# Do similar thing
os.remove('/my/file')
except OSError, e:
# Same exception handing
pass
try:
# Do similar thing
os.chmod('/other/file', 0700)
except OSError, e:
#Same exception handling
pass
Например, для однострочных действий вы можете определить оболочку обработки исключений и затем передать лямбда-функцию:
def may_exist(func):
"Work with file which you are not sure if exists."""
try:
func()
except OSError, e:
# Same exception handling
pass
may_exist(lambda: os.remove('/my/file'))
may_exist(lambda: os.chmod('/other/file', 0700))
«решение» просто сделать вещи менее понятными?Должен ли я просто полностью выписать все операторы try / кроме?