Tenho um comportamento extremamente estranho que parece resultar em exceções silenciosas. Como posso escrever um try catch geral, onde posso depurar todas as exceções. Algo na linha de:
try:
# something that fails
except e:
print e
Um pouco mais sobre o problema em questão em detalhes:
Eu tenho um aplicativo Django que em meu computador (Ubuntu Linux 8.10) funciona bem tanto por meio do runserver quanto do mod-python. No servidor de implantação (Ubuntu Linux 8.10), ele funciona bem por meio do runserver, mas falha por meio do apache em mod-python.
Reduzi a causa a uma parte do aplicativo que usa Berkeley DB (bsddb.db) e chaves secundárias. O método de retorno de chamada para chaves secundárias usa pickle para formatar as chaves. Ele falha quando eu chamo pickle em um único valor. No entanto, ele só falha quando eu uso cPickle, e usar pickle nos mesmos valores fora da função de retorno de chamada também funciona.
Só quero saber por que falha com o cPickle.
O módulo traceback é bastante útil para formatar tracebacks. Você pode então gravá-lo em um arquivo de log.
fonte
Isto funciona? :
except BaseException, e:
fonte
BaseException
- incluiSystemExit
eKeyboardInterrupt
coisas que você geralmente não quer pegar.