ver telefono studio log imprimir how errores depurar debug consola abrir debugging exception android-studio breakpoints

debugging - telefono - ver errores android studio



Android Studio IDE: Break on Exception (3)

Si abre la ventana Puntos de ruptura, le ofrece bastantes opciones para que se rompa condicionalmente o no. Lo que está buscando son los "filtros de clase" aquí; puede especificar una expresión de comodín con, por ejemplo, una ruta del paquete Java, y solo se romperá para excepciones generadas a partir de clases coincidentes.

Parece que mi Android Studio no quiere romper ninguna excepción por defecto. La habilitación del descanso en "Cualquier excepción" comienza a fallar dentro de las bibliotecas JDE reales. ¿Hay alguna manera de obligarlo a romper solo las excepciones dentro de mi código solamente?

Procedente del universo de Visual Studio, buscando aquí el comportamiento de depuración de VS predeterminado.


Para romper con todas las excepciones, atrapado o no:

  1. Abra la ventana Puntos de ruptura a través de Ejecutar -> Ver puntos de interrupción .
  2. Aparece el cuadro de diálogo Puntos de ruptura. En el panel izquierdo, desplácese hasta la parte inferior. Seleccione Cualquier excepción bajo Puntos de interrupción de excepción de Java
  3. Con cualquier excepción seleccionada, en el panel derecho, configure de la siguiente manera:
    • Suspender: verificado
    • Todo: seleccionado
    • Condición !(this instanceof java.lang.ClassNotFoundException)
    • Notificaciones: se detectaron excepción de capturado y no capturado
  1. Marque la casilla de verificación Filtros de clase para habilitar el filtrado de clase ( como lo menciona @Scott Barta ). Luego haga clic en el botón ... (elipsis) para abrir el cuadro de diálogo Filtros de clase. Especifique los patrones del espacio de nombres de clase haciendo clic en (Agregar patrón) botón. Entrar:
    • com.myapp.* (reemplace esto con el prefijo del espacio de nombres de su aplicación)
    • java.* (nota: según la pregunta de OP, déjalo en NOT break en las bibliotecas de Java)
    • android.* (como se indica más arriba, omita solo depurar el código de la aplicación propia)
    • Agregue espacios de nombres adicionales según sea necesario (p. Ej., Bibliotecas de terceros)
  1. Presione OK , luego cierre el cuadro de diálogo Puntos de interrupción.

Para romper todas las excepciones en su código y otras excepciones si no se detecta:

Este método filtra los tipos de excepción que arroja el tiempo de ejecución durante el funcionamiento normal (no muy excepcional, ¿verdad?). No usa el filtro de clase, ya que filtraría demasiado; los errores en su código a menudo hacen que las clases de tiempo de ejecución arrojen excepciones (por ejemplo, al acceder a una lista de arreglos después del final).

  1. Habilite los Exceptions BreakPoints de Java / Cualquier excepción solo para excepciones no detectadas .

  2. Agregue un nuevo punto de excepción de excepción de Java para la clase Exception (java.lang) para excepciones atrapadas y no detectadas . Habilitar condición y configurarlo en esto:

    !(this instanceof java.lang.ClassNotFoundException || this instanceof android.system.ErrnoException || this instanceof java.io.FileNotFoundException || this instanceof javax.net.ssl.SSLHandshakeException || this instanceof javax.net.ssl.SSLPeerUnverifiedException || this instanceof android.system.GaiException || this instanceof java.net.SocketTimeoutException || this instanceof java.net.SocketException || this instanceof java.security.NoSuchAlgorithmException)

Agregue a la lista de exclusión en la condición cualquier otra excepción no excepcional que encuentre. (Por cierto, el uso de java.lang.Exception es una forma efectiva de obtener una segunda entrada "Cualquier excepción").