默认情况下,我的Android Studio似乎不希望破坏任何异常。启用中断"任何异常"开始打破实际的JDE库。有没有办法强制它只在我的代码中的异常中断?
来自Visual Studio Universe,在此处查找默认的VS调试行为。
答案 0 :(得分:176)
打破所有被捕获或未捕获的异常:
!(this instanceof java.lang.ClassNotFoundException)
com.myapp.*
(将其替换为应用的名称空间前缀)java.*
(注意:根据OP的问题,请不要在Java库中中断)android.*
(如上所述,只需调试自己的应用代码)
答案 1 :(得分:33)
如果你打开Breakpoints窗口,它会为你提供很多选项让它有条件地破坏。您正在寻找的是"类过滤器"这里 - 您可以使用例如Java包路径指定通配符表达式,并且它只会因匹配类生成的异常而中断。
答案 2 :(得分:6)
打破代码中的所有异常以及未捕获的其他异常:
此方法过滤掉运行时在正常操作期间抛出的异常类型(不是非常特殊,是吗?)。它不使用类过滤器,因为它会过滤掉;代码中的错误通常会导致运行时类抛出异常(例如,在结束时访问数组列表)。
仅为未捕获例外启用 Java例外BreakPoints /任何例外。
为捕获和未捕获例外的Exception (java.lang)
类添加新的 Java Exception BreakPoint 。启用条件并将其设置为:
!(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
是一种有效获取第二个“任何例外”条目的方法。)