千家信息网

java中e.printStackTrace()会不会输出到控制台

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍java中e.printStackTrace()会不会输出到控制台,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!java中e.printStackTrace()
千家信息网最后更新 2025年11月07日java中e.printStackTrace()会不会输出到控制台

这篇文章主要介绍java中e.printStackTrace()会不会输出到控制台,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

  java中e.printStackTrace()只会输出到控制台吗?不会输出到日志文件吗?要想输出到日志文件是否需要logger.error(e)?需要logger.error(e)还是logger.error(e.printStackTrace())?

  e.printStackTrace()只会输出到控制台吗

  tomcat下会输出到catalina.out

  不要用e.pringStackTrace()打日志

  如果要输入调用栈的话,log.error("错误信息",e);,不输出调用栈的话就log.error("错误信息");

  忽然笑

  e.pringStackTrace()底层是调用了System.err.println().应该这样用

  try{

  //doSomething

  }catch(IllegalAccessExceptione){

  logger.error("错误信息:",e);

  }

  e.printStackTrace()会导致锁死?

  注意右下角区域,红框部分。这块内存是什么呢?非堆!那么,左边是代码缓存区内存,右边红框就是字符串池,常量,基本类型数据的内存区。然后呢?已经满了。什么原因呢?e.printStackTrace()!

  满了的后果呢?整个web服务,访问之后,没响应了,就当是卡死掉了。

  看看有多少web的请求线程,被卡住在打印这一步!原因呢?要打印字符串输出到控制台上,那你字符串常量池所在的内存块要有空间啊。然而,因为e.printStackTrace()语句要产生的字符串记录的是堆栈信息,太长太多,内存被填满了!注意上面代码语句:4208行!

  来看图3:

  没毛病,没没事儿找事儿冤枉谁。就是这句代码惹的祸!当然,我承认,被try住的代码本身就有问题,导致很多调用都会抛异常。

  那么,让我们再来理理整个事件产生的经过:

  短时间内大量请求访问此接口->代码本身有问题,很多情况下抛异常->e.printStackTrace()来打印异常到控制台->产生错误堆栈字符串到字符串池内存空间->此内存空间一下子被占满了->开始在此内存空间产出字符串的线程还没完全生产完整,就没空间了->大量线程产出字符串产出到一半,等在这儿(等有内存了继续搞啊)->相互等待,等内存,锁死了,整个应用挂掉了。

以上是"java中e.printStackTrace()会不会输出到控制台"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

输出 内存 字符 字符串 控制 控制台 代码 信息 错误 日志 空间 线程 产出 内容 原因 堆栈 就是 常量 文件 篇文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 高中信息技术网络技术知识点 单片机软件开发环境好不好 中级软件开发试题 简述空间数据库设计的原则和步骤 数据大基础服务器 武陵神装如何看此前登录服务器 怎样才能学好计算机软件开发 网络安全等级保护测评南宁 网络安全建议作文英文 能源互联网 金风科技公司 成年人学习网络安全教育 腾讯云服务器管理口令 文件服务器管理专家破解版 软件网络安全专业难学吗 数据库关系代数练习 无锡市推进网络安全高质量发展 我国网络安全保险产品有哪些 csgo重新连接至服务器代码 数据库密码加密的方式 湖南岳阳软件开发学院 数据库为什么选DB2 计算机网络技术中的传输介质 抓服务器包 中信银行软件开发基地有哪些 计算机网络技术的职业目标 金融服务器租用 典型网络安全攻击方法 数据库密码加密的方式 加强人与自然网络安全建设 华为云服务器是真的吗
0