1、e.printStackTrace()打印在哪里

在catch中的e.printStackTrace()将打印到控制台

2、e.printStackTrace()打印的内容是什么

import org.apache.logging.log4j.Logger;

public class ExceptionTest {

private static final Logger logger=LogManager.getLogger();

public void test() {

try {

int i=1/0;

}catch(Exception e){

e.printStackTrace();

}

}

public static void main(String[] args) {

ExceptionTest test= new ExceptionTest();

test.test();

}

}

输出结果如下:

java.lang.ArithmeticException: / by zero

at myProject.ExceptionTest.test(ExceptionTest.java:10)

at myProject.ExceptionTest.main(ExceptionTest.java:18)

可见,e.printStackTrace()打印了错误的具体信息,即这个错误出现的位置,便于查找错误源

3、如果将e.printStackTrace()的信息打印在日志里应该怎么做呢?

见如下代码:

package myProject;

import org.apache.logging.log4j.LogManager;

import org.apache.logging.log4j.Logger;

public class ExceptionTest {

private static final Logger logger=LogManager.getLogger();

public void test() {

try {

int i=1/0;

}catch(Exception e){

logger.error(e);

}

}

public static void main(String[] args) {

ExceptionTest test= new ExceptionTest();

test.test();

}

}

用logger.error(e);打印日志,输出结果如下:

19:17:39.753 [main] ERROR myProject.ExceptionTest - java.lang.ArithmeticException: / by zero

可见,用这种方法打印的日志,只有大概的错误信息,并没有指出报错的代码位置,不便于查找错误。用logger.error(e.getMessage());也是输出这种大概的错误信息。

再见如下代码:

package myProject;

import org.apache.logging.log4j.LogManager;

import org.apache.logging.log4j.Logger;

public class ExceptionTest {

private static final Logger logger=LogManager.getLogger();

public void test() {

try {

int i=1/0;

}catch(Exception e){

logger.error("ExceptionTest Exception:",e);

}

}

public static void main(String[] args) {

ExceptionTest test= new ExceptionTest();

test.test();

}

}

用logger.error("ExceptionTest Exception:",e);,则输出结果如下:

9:20:32.948 [main] ERROR myProject.ExceptionTest - ExceptionTest Exception:

java.lang.ArithmeticException: / by zero

at myProject.ExceptionTest.test(ExceptionTest.java:10) [classes/:?]

at myProject.ExceptionTest.main(ExceptionTest.java:18) [classes/:?]

这和e.printStackTrace()打印的内容大致是相同的。不过最好,还是使用logger.error(e.getMessage(),e)方法来在日志上查看异常的详细结果

java记录日志不打印控制台,java异常在控制台和日志里面的打印记录相关推荐

  1. java异常在控制台和日志里面的打印记录

    1.e.printStackTrace()打印在哪里 在catch中的e.printStackTrace()将打印到控制台 2.e.printStackTrace()打印的内容是什么 import o ...

  2. JAVA//异常、断言和日志

    1. 处理错误 1.2 异常分类 异常对象都是派生于 Throwable 类的一个实例.用户可以创建自己的异常类. Error 类层次结构描述了 Java 运行时系统的内部错误和资源耗尽错误. 应用程 ...

  3. Java基础巩固(二)异常,多线程,线程池,IO流,Properties集合,IO工具类,字符流,对象流,Stream,Lambda表达式

    一.异常,多线程 学习目标 : 异常的概述 异常的分类 异常的处理方式 自定义异常 多线程入门 1 异常的概述 1.1 什么是异常? 异常就是程序出现了不正常情况 , 程序在执行过程中 , 数据导致程 ...

  4. java通过异常处理错误,java基础之通过错误处理异常

    我们在编程过程中,通常需要时刻关注可能遇到的问题,此时可以把问题分为两类:普通问题与异常问题.普通问题:我们可以通过从当前环境中获取到的信息来解决这个问题:而异常问题:在当前环境中获取到的信息并不能解 ...

  5. Java核心技术笔记 异常、断言和日志

    <Java核心技术 卷Ⅰ> 第7章 异常.断言和日志 处理错误 捕获异常 使用异常机制的技巧 记录日志 处理错误 如果由于出现错误而是的某些操作没有完成,程序应该: 返回到一种安全状态,并 ...

  6. JAVA day24,25,26 异常(try、catch、finally、throw、throws),线程(Thread、Runnable、Callable)

    一.异常 异常 :指的是程序在执⾏过程中,出现的⾮正常的情况,最终会导致JVM的⾮正常停⽌. 在Java等⾯向对象的编程语⾔中,异常本身是⼀个类,产⽣异常就是创建异常对象并抛出了⼀个 异常对象.Jav ...

  7. 4.1_[Java 输入输出]-全网最全 Java 控制台输入输出

    ################################################## 目录 调用 Java Scanner API 输入接口 什么是 Java API 导入 Scann ...

  8. Java基础 Stream流方法引用异常文件

    Stream流 引例 需求:按照下面要求完成集合的创建和遍历 创建一个集合,存储多个字符串元素 1. 把所有以"曹"开头的元素存储到新集合中 2. 把曹开头,长度为3的元素存储到新 ...

  9. java try catch嵌套_解析Java中未被捕获的异常以及try语句的嵌套使用

    Java未被捕获的异常 在你学习在程序中处理异常之前,看一看如果你不处理它们会有什么情况发生是很有好处的.下面的小程序包括一个故意导致被零除错误的表达式. class Exc0 { public st ...

最新文章

  1. python一点基础都没有的怎么办-你们都是怎么学 Python 的?
  2. 寻找U2OS中表达的基因及其promoter并用于后续annotation
  3. 【Linux部署】Spring Boot 项目部署在Linux环境下的Docker容器内举例【任务调度系统 xxl-job 任务调度中心】(手动版)
  4. Pygame 使用Djkstra广度搜索寻找迷宫(相对)最短路径
  5. iOS开发Item属性总结
  6. TortoiseSVN搭建本地版本库及简单操作使用
  7. python基础教程视频-Python基础视频教程全集
  8. 设计模式之GOF23工厂模式02
  9. datatable自定义表单或者导出excel按钮,搜索
  10. jumpserver 账户被锁定30分钟后_175斤女孩嫌腰粗,每天坚持跳绳30分钟,3个月后令丈夫刮目相看...
  11. webstorm软件使用汉化包
  12. hp 官方没有针对 mac 的显示器驱动
  13. 计算机作文600字关于科学事业,关于科学的作文600字(精选11篇)
  14. 适合研发团队的几个项目管理软件对比
  15. EXCEL和公式里的 通配符
  16. 自然语言处理入门学习笔记3:词向量
  17. PointNet++等3D点云中用到的.cu、.cpp文件的编译的简单理解
  18. 如何正确选择ARM核心板、ARM工控板的存储类型?
  19. 知识图谱构建之二:从结构化数据到知识图谱
  20. php 下载 网站 文件,php中下载网站文件

热门文章

  1. x射线管的kV、mA、mAs
  2. div+CSS浏览器兼容问题整理(IE6.0、IE7.0 ,ie8 , FireFox...)
  3. CUDA11.3以及PyTorch-GPU版本安装
  4. cf #818 Div.2(A~C)
  5. mysql HA方案: MHA
  6. 行车记录仪开发方案比较--转载
  7. Linux操作系统——切换到root用户及其他用户
  8. 最新微信8.0.1抢红包神器-亲测2021年2月11日可用-安卓IOS
  9. jquery可爱的小黑猫
  10. 自学第一天-阿里云服务器ESC