Il semble que mon Android Studio ne souhaite pas interrompre une exception par défaut. L'activation de l'interruption sur "N'importe quelle exception" commence à apparaître dans les bibliothèques JDE réelles. Y a-t-il un moyen de le forcer uniquement des exceptions au sein de mon code uniquement?
Venant de l'univers Visual Studio, recherchez le comportement de débogage par défaut de VS ici.
Pour interrompre toutes les exceptions, capturées ou non:
!(this instanceof Java.lang.ClassNotFoundException)
com.myapp.*
_ (remplacez-le par le préfixe d'espace de nom de votre application)Java.*
(note: comme indiqué dans la question de l’opérateur, ne pas laisser cette option sur NON = casser sur Java)Android.*
(comme ci-dessus, laissez de côté pour déboguer votre propre code d'application)Si vous ouvrez la fenêtre Points d'arrêt, vous disposez de plusieurs options pour que celle-ci se brise ou non de manière conditionnelle. Ce que vous recherchez, ce sont les "Filtres de classe" ici. Vous pouvez spécifier une expression générique avec, par exemple, un chemin de package Java). Il ne sera cassé que pour les exceptions générées à partir de Des classes.
Pour interrompre toutes les exceptions de votre code et d’autres exceptions si non capturés:
Cette méthode filtre les types d'exceptions que le moteur d'exécution lève en fonctionnement normal (pas très exceptionnels, n'est-ce pas?). Il n'utilise pas le filtre de classe, car il filtrerait trop; des bogues dans votre code amènent souvent les classes d'exécution à lever des exceptions (par exemple, accéder à une liste de tableaux au-delà de la fin).
Activer BreakPoints d'exception Java/Toute exception pour les exceptions non capturées.
Ajoutez un nouveau point d'exception Java pour la classe Exception (Java.lang)
pour les exceptions capturées et non capturées. Activez Condition et réglez-le sur ceci:
!(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)
Ajoutez à la liste d'exclusion dans la condition toute autre exception non exceptionnelle que vous rencontrez. (BTW, en utilisant Java.lang.Exception
est un moyen d’obtenir efficacement une deuxième entrée "Toute exception".)