首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

日志记录Java异常信息的正确姿势

遇到的问题 今天遇到一个线上的BUG,执行表单提交时失败,但是从程序日志中看不到任何异常信息。...原因分析 先来看一下Java异常类图: ? Throwable是Java中所有异常信息的顶级父类,其中的成员变量detailMessage就是调用e.getMessage()返回的值。...所以,程序日志不要单纯使用getMessage()方法获取异常信息(返回值为空时,不利于问题排查)。...private static final Logger logger = LoggerFactory.getLogger(Test.class); } 当我们需要在程序日志输出异常信息时,应该直接传入异常对象即可...} catch (Exception e) { // 直接将异常对象传入日志接口,保存异常信息到日志文件 logger.error("error: {}", e.getMessage

2.5K40
您找到你想要的搜索结果了吗?
是的
没有找到

java异常returnfinally前面_java 异常处理

java异常处理机制,执行顺序;return异常的使用 ;自定义异常类的简单应用 异常处理2种方法: 1.抛 (throws) 2.自己处理try/catch/finally 1....抛出:向上一级抛出,异常实际没有被解决掉 2.try/catch/finally (1)正常执行 public class Test1 { public static void main...System.out.println("finally"); //return; } } } 复制代码 123 正常执行 finally (2)异常情况...因此,finally通常用于释放资源,IO流操作和数据库操作,程序没有报错,执行了 try 和 finally 代码块,程序报错了,执行try catch finally 代码块 那么这里就有一个问题...Java的return有两方面的用途: (1)返回方法指定类型的值(前提是方法的返回值类型不是void)。 (2)方法的结束,它会导致当前的方法退出。

76510

基于jvmti定位java异常信息

J2SE 5.0 之后 JDK 取代了 JVMDI 和 JVMPI 这两套接口,JVMDI 最新的 Java SE 6 已经不提供支持,而 JVMPI 也计划在 Java SE 7 后被彻底取代... JPDA 体系,作为前端(front-end)的调试者(debugger)进程和后端(back-end)的被调试程序(debuggee)进程之间的交互数据的格式就是由 JDWP 来描述的,它详细完整地定义了请求命令...Java 调试接口(JDI) JDI(Java Debug Interface)是三个模块中最高层的接口,多数的 JDK ,它是由 Java 语言实现的。...开发完成后java代码中加入agentpath,这样就可以监控到我们需要的信息内容。...-输出异常信息(可以分析行号): java.lang.NullPointerException: 根据用户Id获取用户信息,空指针异常 at org.itstack.demo.jvmti.User.queryUserInfoById

1.1K10

Java8的Consumer抛出异常

最近在实现公司内部一个通用svn数据工具类,其中有段代码是拿到当前更新后的数据进行下一步操作,用的是java8的Consumer实现的,代码如下: public void save(final DTO...,debug查看后发现是异常被调用方吃掉了,原因了原生Consumer不支持异常抛出,只能内部处理,接到反馈后,自己测试确实能复现,查看Consumer源码发现原生确实不支持抛出,查阅网络资料,发现只能重写一个...; /** * @ClassName: ThrowingConsumer * @Description: 重写Java8的Consumer异常抛出 * @author:Erwin.Zhang...Throwing.class import javax.validation.constraints.NotNull; * @ClassName: Throwing * @Description: Java8...的Consumer抛出异常 * @author:Erwin.Zhang * @date: 2021-03-01 10:58:31 */ public class Throwing { private

3.7K20

java异常

Java异常 异常:直观的理解就是不正常,不完全正确,可能存在某些问题。实际编写程序的过程,往往可能出于疏忽而导致程序出现bug。...合理的处理异常,会使得程序的健壮性,可读性以及可维护性得到大大的提高。 java,提供了优秀的异常机制,当程序出现在运行时期的异常和编译阶段的异常,提供解决错误的方法。...下图是java异常的层次结构: 程序显式的进行异常的处理 1.捕获可能存在的异常。...当我们忘记可能发生异常的具体类型时间,可以使用Exception基类,因为java中所有肯能出现的异常都继承Exception类,当然基类的引用是可以指向子类的方法的。...(1)getMassage()方法,是Throwable类提供的一个方法,通过该方法的调用,可以得到有关异常信息

90410

Java 异常处理

Java ,所有的异常都有一个共同的祖先java.lang包的 Throwable类。...Error(错误):是程序无法处理的错误,表示运行应用程序较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。... Java,错误通过Error的子类描述。 Exception(异常):是程序本身可以处理的异常。Exception 类有一个重要的子类 RuntimeException。...如果子类没有覆盖该方法,则该方法返回的信息与getMessage()返回的结果相同 public void printStackTrace():控制台上打印Throwable对象封装的异常信息 异常处理总结...当在try块或catch块遇到return 语句时,finally语句块将在方法返回之前被执行。 以下4种特殊情况下,finally块不会被执行: finally语句块第一行发生了异常

1.3K10

java异常总结

一般面试java Exception(runtimeException )是必会被问到的问题 常见的异常列出四五种,是基本要求。更多的。。。。...初始化一个类时,若检测到类之间循环依赖则抛出该异常java.lang.ClassFormatError 类格式错误。...一般修改了应用的某些类的声明定义而没有对整个应用重新编译而直接运行的情况下,容易引发该错误。 java.lang.InstantiationError 实例化错误。...java.lang.LinkageError 链接错误。该错误及其所有子类指示某个类依赖于另外一些类,该类编译之后,被依赖的类改变了其类定义而没有重新编译所有的类,进而引发错误的情况。...java.lang.ArrayStoreException 数组存储异常。当向数组存放非数组声明类型对象时抛出。 java.lang.ClassCastException 类造型异常

1.4K30

Java异常处理

我们写代码的时候,提升错误恢复能力是提升代码健壮的重要措施。而“为了创建一个更加健壮的系统,那么每一个组件都必须是健壮的”。从而,Java中出现了异常处理机制。...不像C语言,基本处理错误的代码都是程序员写上去的,而在Java,除非是要自己自定义异常的时候,我们一般都是通过异常处理代码块来解决问题的。不但提高了代码的健壮性,还提高了代码的可读性。...getMessage() 输出异常信息,需要通过构造方法传入异常信息,也就是new一个对象的时候传入的参数(手动滑稽) 3....程序可能有多个语句发生异常,可以同时放在try。如果某条语句发生异常的时候,程序将会对catch异常进行匹配,如果能够匹配上,则执行相应的catch的代码,如果没有匹配上,程序停止。...IOException 使用要导入包import java.io.IOException; ClassNotFoundException Sun 的API文档的函数上声明异常,那么该异常是非运行是异常

1.3K10

Java异常的种类

参考链接: Java异常处理 Java异常处理介绍  1.1  什么是异常                      程序运行过程中发生不正常的情况或不能够正常运行的情况就是异常。 ...3.Exception:  Exception类及其子类是Throwable的一种形式,它指出了合理的应用程序想要捕获的条件  (1)SQLException:该异常提供关于数据库访问错误或其他错误的信息...,程序可以选择捕获处理,也可以不处理。...5、异常的捕获和处理  Java异常的捕获和处理是一个不容易把握的事情,如果处理不当,不但会让程序代码的可读性大大降低,而且导致系统性能低下,甚至引发一些难以发现的错。 ...ArithmeticException - 算术运算异常 ArrayStoreException - 向数组存放与声明类型不兼容对象异常IndexOutOfBoundsException - 下标越界异常

93940

java异常处理

Java异常处理是Java程序设计的一个核心概念,异常处理能够提高程序的可靠性和稳定性。Java异常是指在程序执行过程中出现的一些错误情况,比如数据格式错误、文件不存在、网络连接中断等。...一、异常的分类Java异常分为两种类型:Checked Exception和Unchecked Exception。...二、异常处理的机制Java异常处理机制主要包括:抛出异常、捕获异常和处理异常。...下面是几种常见的处理方式:(1)打印异常信息:可以使用e.printStackTrace()方法来打印异常信息,该方法会打印出异常的类型、异常信息异常出现的位置。...记录日志:捕获异常时,应该记录日志,以便后续分析和排查问题。抛出有意义的异常:当出现异常时,应该抛出有意义的异常,并且应该在异常的消息包含足够的信息,以便快速诊断问题。

1.1K30

SpringSpringboot异步处理异常

实施一个将使代码更易于阅读,并将“常规代码”与发生异常情况时要执行的操作分开。 上面的代码将返回 404 错误和如下图所示的信息。 现在让我们看一下我们的应用程序管理异常的第一个机制。...这是为了防止服务器泄露详细信息。 server.error.include-message=always 现在响应包含消息。...我们将在下一节中看到如何对任何异常使用自定义 JSON 错误响应。 使用@ExceptionHandler 进行异常处理 它允许方法管理异常。允许使用它注释的处理程序方法具有非常灵活的签名。...我们的例子,该方法将异常类型作为参数并返回一个 ResponseEntity。 它的工作方式是当抛出异常时,处理程序方法将拦截它并返回特定的响应(如果有的话)。...它允许集中处理异常并促进代码重用。 首先,必须删除或注释上一节异常处理程序方法。

16110
领券