Android Studio IDE:打破例外

看来我的Android Studio不想在任何例外情况下突破。 在“任何exception”上启用中断在实际的JDE库中开始打破。 有什么办法强制它只打破我的代码中的exception吗?

来自Visual Studio的Universe,在这里寻找默认的VSdebugging行为。

打破所有例外,抓住或未被捕获:

  1. 通过运行 – >查看断点打开断点窗口。
  2. 出现断点对话框。 在左侧窗格中,滚动到底部。 在Javaexception断点下select任何exception
  3. 在选中任何exception的情况下 ,在右侧窗格中进行如下configuration:
    • 暂停:检查
    • 全部:选中
    • 条件: !(this instanceof java.lang.ClassNotFoundException)
    • 通知:select捕捉exception 捕捉exception

断点对话框

  1. 选中“ 类filter”checkbox以启用类过滤( 如@Scott Barta所述 )。 然后单击 (elipsis)button打开“类filter”对话框。 通过单击指定类命名空间模式 添加模式 (添加模式)button。 input:
    • com.myapp.* (将其replace为应用程序的命名空间前缀)
    • java.* (注意:根据OP的问题,请不要在Java库中断)
    • android.* (如上所述,只是debugging自己的应用程序代码)
    • 根据需要添加任何额外的名称空间(例如第三方库)

类过滤器

  1. OK ,然后closures断点对话框。

如果你打开断点窗口,它会给你不less的select,让它有条件地破。 你要找的是这里的“类filter” – 你可以指定一个通配符expression式,例如,一个Java包path,它只会打破从匹配类生成的exception。

要中断代码中的所有exception和其他exception,如果未被捕获:

这个方法可以过滤运行时在正常运行时抛出的exceptiontypes(不是很特别,是吗?)。 它不使用类filter,因为它会过滤掉太多; 代码中的错误通常会导致运行时类抛出exception(例如,访问末尾的数组列表)。

  1. 启用JavaexceptionBreakPoints /只有未捕获exception的任何exception

  2. 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”条目的方法。)