- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在我下面的代码片段中,printStackTrace()
方法在 catch block
中被调用。运行程序后可以看到,有时候printStackTrace()
会连续运行几次,而不是按照printStackTrace()
的顺序运行 --> catch block
--> 最终 block
.
如果将 static boolean b
更改为 false
,则 System.out.print(e)
会按顺序执行。
那么为什么 printStackTrace()
会以不同的方式运行? (有线程的东西??)
public class PrintStackTrace {
static boolean b = true;
public static void main(String[] args){
for(int i = 0; i < 100; i++){
try{
throw new Exception("[" + i + "]");
}
catch(Exception e){
if(b){
e.printStackTrace();
}
else{
System.out.print(e);
}
System.out.print(" Catch: " + i);
}
finally{
System.out.print(" Finally: " + i);
}
System.out.println();
}
}
}
最佳答案
因为printStackTrace
写在System.err
上,而System.out.println
写在System.out
上>。即使 System.err
和 System.out
对输出消息使用相同的底层资源(例如相同的文件或相同的控制台),它们也会在不同的时刻刷新。
如果你想要一个同步输出,把异常也写在System.out
中:
e.printStackTrace(System.out);
或者更好的是,使用记录器,它已经将输出同步到共享资源中,并为您提供更多有关消息输出内容的选项,例如类、方法、日期和时间、线程名称等,还有其他好处,例如在数据库而不是文本文件中写入日志消息等。
关于java - 为什么 printStackTrace() 和其他方法之间的执行顺序似乎是不确定的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23588123/
printStackTrace() 的行为就好像它在等待输入后在自己的线程中运行一样。这是我的代码: try { new Scanner(System.in).nextLine();
printStackTrace() 的行为就好像它在等待输入后在自己的线程中运行一样。这是我的代码: try { new Scanner(System.in).nextLine();
这个方法有什么作用?我在网上找到了一个关于异常处理的Android代码,其中那个家伙在catch{}中使用了这个函数,他没有正确解释为什么使用这个函数/方法。 最佳答案 检查这个JavaDoc 。 S
获取e.printStackTrace()打印的信息 某些情况下,我们需要获取应用打印的异常信息,这时就可以借助StringWriter和PrintWriter两个类来获取异常信息 具体用法如下
我收到以下错误“ReferenceError:printStackTrace 未定义”,当我尝试在我的 Angular 应用程序中使用 StackTrace 时。 最佳答案 stacktrace.js
我的类(class)中有一个如下所示的示例代码,我尝试在服务器中启动应用程序。在我们的应用程序中,我们通常使用 logger.error 将异常推送到错误日志。我错误地没有保留 logger.erro
有一个外部库在 catch block 中使用 e.printStackTrace();。 Web 应用程序本身使用 slf4j 和 logback 将日志写入文件(滚动文件附加程序)。 是否有任何方
我是这里的菜鸟。 在 Appengine 上,我的 servlet 给了我一个 500 错误,原因如下: try{ classifiedTweet = SentAnalysis.classifytex
在阅读了许多资料后,我得出结论,使用 printStackTrace 进行错误处理是不好的做法。 Here's one. 现在我很好奇:在什么情况下打印堆栈跟踪是有效的解决方案?为了便于讨论,我们假设
每当我们尝试使用 printStackTrace() 方法打印堆栈跟踪时,为什么输出不按预期顺序?假设我们有一些打印语句以及 printStackTrace() 并且输出不按预期顺序。 public
try { //logic } catch(Exception e) { e.printStackTrace(); } printStackTrace() 方法将为我们提供与异常相关的语
在我下面的代码片段中,printStackTrace() 方法在 catch block 中被调用。运行程序后可以看到,有时候printStackTrace()会连续运行几次,而不是按照printSt
我正在阅读 Android Publishing 文档,他们说要从我的代码中删除所有 Log 调用。我的代码中有一些对 e.printStackTrace() 的调用,可以作为程序正常运行的一部分打印
我需要编写一个小型日志分析器应用程序来处理由我的项目中使用的第 3 方封闭源代码库(内部具有自定义记录器)生成的一些日志文件。 如果日志中有异常条目,我需要收集有关沿堆栈跟踪从顶部到异常实际位置所涉及
有 e.printStackTrace() 方法来打印异常错误,所以我想在 String 中获取整个异常并通过 Toast.makeText 显示它() 我该怎么做? 如果有更多的替代想法,请与我分享
在我的应用程序中,我正在通过 PMD 运行我的代码。它向我显示了这条消息: Avoid printStackTrace(); use a logger call instead. 这是什么意思? 最佳
这个问题在这里已经有了答案: How can I convert a stack trace to a string? (31 个回答) 关闭7年前。 如何获取 e.printStackTrace()
1、含义 catch(Exception e) { e.printStackTrace(); } 当try语句中出现异常是时,会执行catch中的语句,java运行时系统会自动将catch括
本文整理了Java中jxl.write.WriteException.printStackTrace()方法的一些代码示例,展示了WriteException.printStackTrace()的具体
本文整理了Java中weka.core.WekaException.printStackTrace()方法的一些代码示例,展示了WekaException.printStackTrace()的具体用法
我是一名优秀的程序员,十分优秀!