Android Studio IDE:打破例外
看来我的Android Studio不想在任何例外情况下突破。 在“任何exception”上启用中断在实际的JDE库中开始打破。 有什么办法强制它只打破我的代码中的exception吗?
来自Visual Studio的Universe,在这里寻找默认的VSdebugging行为。
打破所有例外,抓住或未被捕获:
- 通过运行 – >查看断点打开断点窗口。
- 出现断点对话框。 在左侧窗格中,滚动到底部。 在Javaexception断点下select任何exception
- 在选中任何exception的情况下 ,在右侧窗格中进行如下configuration:
- 暂停:检查
- 全部:选中
- 条件:
!(this instanceof java.lang.ClassNotFoundException)
- 通知:select捕捉exception和未 捕捉exception
- 选中“ 类filter”checkbox以启用类过滤( 如@Scott Barta所述 )。 然后单击… (elipsis)button打开“类filter”对话框。 通过单击指定类命名空间模式 (添加模式)button。 input:
-
com.myapp.*
(将其replace为应用程序的命名空间前缀) -
java.*
(注意:根据OP的问题,请不要在Java库中断) -
android.*
(如上所述,只是debugging自己的应用程序代码) - 根据需要添加任何额外的名称空间(例如第三方库)
-
- 按OK ,然后closures断点对话框。
如果你打开断点窗口,它会给你不less的select,让它有条件地破。 你要找的是这里的“类filter” – 你可以指定一个通配符expression式,例如,一个Java包path,它只会打破从匹配类生成的exception。
要中断代码中的所有exception和其他exception,如果未被捕获:
这个方法可以过滤运行时在正常运行时抛出的exceptiontypes(不是很特别,是吗?)。 它不使用类filter,因为它会过滤掉太多; 代码中的错误通常会导致运行时类抛出exception(例如,访问末尾的数组列表)。
-
启用JavaexceptionBreakPoints /只有未捕获exception的任何exception 。
-
为
Exception (java.lang)
类添加一个新的Javaexception断点 ,以捕获和捕获exception。 启用条件并将其设置为:!(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)
在遇到任何其他非例外情况时,将条件添加到排除列表中。 (顺便说一句,使用java.lang.Exception
是一种有效获取第二个“任何exception”条目的方法。)