gpt4 book ai didi

android - 没有堆栈跟踪的应用程序崩溃

转载 作者:行者123 更新时间:2023-11-30 00:22:05 29 4
gpt4 key购买 nike

前言 我已经更改了标题。很难理解为什么在调试时,有时未捕获的异常会向 Logcat 打印“致命异常”,而有时却不会。

当我到达 client1.getInputStream() 行时,下面的简化示例崩溃了。 Logcat 内部没有关于出错的堆栈跟踪或其他指示。我正在运行 Android Studio 3.0.0beta4。

  • 为什么会崩溃? (更新 - 崩溃是由于 SecurityException)
  • 为什么 Logcat 不显示堆栈跟踪或其他错误?

更新好吧,我知道它为什么会崩溃了。我添加了 catch(Exception ex) {...} 并发现实际上抛出了一个异常,因为我忘了测试它。愚蠢的错误,我没有在 list 中包含 INTERNET 权限。

所以,我仍然想知道为什么我没有得到未处理异常的错误指示。该应用程序悄悄消失了。

编辑一位评论者说

In java, unhandled exceptions are not printed

这是我强制执行未处理的 NullPointerException 时的 logcat 消息

FATAL EXCEPTION: Thread-6729
Process: com.example.myapplication, PID: 30824
java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.InputStream java.net.URLConnection.getInputStream()' on a null object reference
at com.example.myapplication.MainActivity.GetDataAsyncFromPlaystore(MainActivity.java:79)
at com.example.myapplication.MainActivity$1$1.run(MainActivity.java:42)
at java.lang.Thread.run(Thread.java:818)

那么,为什么不考虑 SecurityException?

Edit2 只是为了让事情更困惑,我发现当我在异常点之前设置一个断点时,然后单步执行代码并跨过违规行(导致SecurityException),应用程序突然终止,没有任何迹象表明原因。但是,如果我在到达有问题的行之前按 F9,实际上我会在 Logcat 中记录一条“致命异常”消息。 (因此,我在问题中添加了“android-studio”标签。)

所以,同样的问题,措辞略有不同:为什么在以一种方式进行调试时异常会打印“致命异常”消息,而另一种方式则不会?

(简化的)代码

public void GetDataFromWebsite()
{
Uri queryUri = Uri.parse("https://play.google.com/store/search?q=Planning&c=apps");
try {
URL queryUrl = new URL(queryUri.toString());
URLConnection client1 = queryUrl.openConnection();
InputStream in = client1.getInputStream();
Log.d("Test", "Okay");
} catch (MalformedURLException muex) {
Log.e("Test", "Malformed Url", muex);
} catch (IOException ioex) {
Log.e("Test", "IO Error", ioex);
// } catch(Exception ex) {
// Log.e("Test","Other Exception", ex);
}
}

注意:

最佳答案

您只是捕获了 MalformedURLExceptionIOException。所以你不会得到其他异常(exception)。捕获 Exception 你会得到一个跟踪。

Android 日志 cat 中未打印未处理的异常。您可以通过 UncaughtExceptionHandler 打印 UnHandled 异常。这是一个类似实现 UncaughtExceptionHandler 的例子:Logging unhandled exceptions in Android Activity

NullpointerExceptionSecurityException 之间没有相关性。它如何被 SecurityException 捕获。

关于android - 没有堆栈跟踪的应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46100617/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com