首页
学习
活动
专区
工具
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.6K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    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)方法的结束,它会导致当前的方法退出。

    79310

    基于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.9K20

    java异常

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

    93610

    Java IO异常处理:Web爬虫开发的实践

    它们能够自动地从网页中提取信息,为数据分析、搜索引擎优化、内容聚合等提供了强大的支持。然而,Web爬虫执行过程可能会遇到各种输入/输出(IO)异常,如网络错误、文件读写问题等。...因此,有效地处理这些异常对于确保爬虫的稳定性和可靠性至关重要。本文将探讨JavaIO异常处理的机制,并展示如何在Web爬虫开发实践这些机制。...Java IO异常处理机制 Java提供了一套完整的异常处理机制,包括try、catch、finally和throw关键字。这些关键字使得开发者能够捕获和处理程序执行过程可能出现的异常情况。 1....异常分类 Java异常分为两大类:受检异常(Checked Exception)和非受检异常(Unchecked Exception)。...资源清理 爬虫程序,及时释放资源是非常重要的,尤其是使用数据库连接、网络连接等资源时。

    9210

    Java IO异常处理:Web爬虫开发的实践

    它们能够自动地从网页中提取信息,为数据分析、搜索引擎优化、内容聚合等提供了强大的支持。然而,Web爬虫执行过程可能会遇到各种输入/输出(IO)异常,如网络错误、文件读写问题等。...因此,有效地处理这些异常对于确保爬虫的稳定性和可靠性至关重要。本文将探讨JavaIO异常处理的机制,并展示如何在Web爬虫开发实践这些机制。...Java IO异常处理机制Java提供了一套完整的异常处理机制,包括try、catch、finally和throw关键字。这些关键字使得开发者能够捕获和处理程序执行过程可能出现的异常情况。1....异常分类Java异常分为两大类:受检异常(Checked Exception)和非受检异常(Unchecked Exception)。...资源清理爬虫程序,及时释放资源是非常重要的,尤其是使用数据库连接、网络连接等资源时。

    14810

    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异常

    异常概念与体系结构: 1 异常的概念: Java ,将程序执行过程中发生的 不正常行为 称为异常, 如:算数异常: ArithmeticException System.out.println...但是运行会有异常:这就是非受查异常 二. 异常的处理: Java异常处理主要的 5 个关键字: throw 、 try 、 catch 、 final 、 throws 。...异常的抛出 :Java,可以借助throw关键字,抛出一个指定的异常对象,将错误信息告知给调用者 注意: (1). throw必须写在方法体内部...(一般写法是,用父类异常在最后面兜底) 4.finally: 写程序时, 有些特定的代码,不论程序是否发生异常,都需要执行,比如程序打开的资源 :网络连接、数据库连接、IO 流等, 程序正常或者异常退出时...自定义异常类: Java 虽然已经内置了丰富的异常类, 但是并不能完全表示实际开发中所遇到的一些异常,此时就需要维护符合我们实际情况的异常结构.就需要自定义异常 例如, 我们实现一个用户登陆功能

    8810

    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

    SpringSpringboot异步处理异常

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

    24910

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券