2011-07-10 18 views
22

Duplicar posible:
break on unhandled exception in pycharm¿Cómo hacer pausa en PyCharm Mis excepciones

Soy nuevo en Python y estoy tratando de depurar mi primer programa en Python usando PyCharm 1.5. Quiero que el depurador se rompa cuando ocurre una excepción en mi código (y solo en el mío).

Por ahora la situación es el siguiente: yo uso (Ctrl + Shift + F8) de diálogo para configurar depurador y si fijo suspender todas = true y Todas las excepciones = true continuación, se rompe depurador demasiado a menudo, por ejemplo, , se rompe en algún lugar dentro de PyCharm 1.5.1 \ helpers \ pydev \ pydevd.py que es molesto omitir todo el tiempo. Y si configuro otras opciones, el depurador no se divide cuando ocurre una excepción en mi código.

PD: Por cierto, si acabo de saltear las interrupciones en PyCharm 1.5.1 \ helpers \ pydev \ pydevd.py entonces la ejecución continúa sin errores visibles. Por lo tanto, no entiendo por qué se rompe

+2

Si no obtiene una respuesta aquí, podría valer la pena plantear un problema en [el rastreador de problemas Pycharm] (http://youtrack.jetbrains.net/issues/PY). Parece que podría ser un error. Pycharm probablemente no debería estar rompiendo excepciones en su propio código. –

+0

Ok, gracias por los consejos, publicaré aquí si encuentro lo que está funcionando –

+0

¿funcionó cuando agregaste un punto de depuración en cualquier ubicación? –

Respuesta

3

Una forma de distinguir sus excepciones de las excepciones provenientes de una biblioteca es hacer que se deriven de una clase personalizada, p. Si el módulo se llama Foo, usted podría tener

class FooException(Exception): 
    pass 

y tienen excepciones más específicas se deben a esto:

class MyMathException(FooException): 
    # etc. 

Luego, en PyCharm, en lugar de permitir que All Exceptions, añadir FooException a la lista de excepciones para romper con.

+0

Estoy de acuerdo con lo que ha dicho, pero por lo general no soy yo quien plantea una excepción –

+0

Oh. Ahora estoy confundido, dijiste "cuando ocurre una excepción en mi código (y solo en el mío)". – UncleZeiv

+0

Sí, por ejemplo, si llamo al método que falta, entonces ocurre una excepción en mi código, pero no soy yo quien lanza una excepción –

Cuestiones relacionadas