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. android的WindowManager.addView弹窗添加
  2. 神策数据招募优秀的解决方案销售和售前
  3. js移除某个class_用JS添加和删除class类名
  4. .NETFramework-Web.Mvc:ViewResult
  5. 【51项目】电子密码锁设计
  6. 超棒的30款JS类库和工具
  7. spring aop示例_Spring批处理示例
  8. Vue学习笔记(七)
  9. off cpu linux,宋宝华: 用off-cpu火焰图进行Linux性能分析
  10. python操作wps表格_python3怎么用pandas读wps表格,pandas python教程
  11. 使用nvim来代替VSCode,神操作
  12. 混沌工程(Chaos Engineering) 到底是什么?
  13. Mac 谷歌浏览器chrome恶意插件劫持Any search(TotalSearchToolbox)处理
  14. vim 怎么显示空格_vi查看空格、制表符等特殊符号
  15. linux常用命令大全,建议收藏
  16. mapbox-gl:图层过滤显示
  17. linux红帽7安装samba服务器
  18. 数据结构之你没见过的排序算法!
  19. udevinfo__ udevadm info
  20. 斯坦福cs231n虚拟环境搭建详细教程,内含资源下载

热门文章

  1. 解决vscode红色波浪线的ts报错:找不到模块“store” ts(2307),不识别@别名路径
  2. AE圣诞树(html版本),免费
  3. can't find lxxx解决办法
  4. 欧拉角变化率和机体角速度的关系
  5. 最新蓝奏云软件库系统源码分享下载+非WebView
  6. js的lambda表达式
  7. 自建WIFI热点传输应用评测: 还在用蓝牙传文件?你OUT了
  8. [静态时序分析简明教程(三)]备战秋招,如何看懂一个陌生的timing report
  9. 8421BCD码 5421BCD码 余三码 格雷码 余三循环码之间的关系,转换以及简易方法
  10. 微信商户号25位招商银行号