首页 > 软件开发 > JAVA >

java中的异常链

来源:互联网 2023-03-16 19:22:32 439

常常会再捕获一个异常后跑出另外一个异常,并且希望把异常原始信息保存下来,这被称为异常链。7Ex办公区 - 实用经验教程分享!

java中的异常链7Ex办公区 - 实用经验教程分享!

工具/原料

  • IntelliJ IDEA
  • jdk1.8

方法/步骤

  • 1

    在捕获异常以处理错误情况时, 完全有可能您希望重新引发该异常, 甚至引发其他类型的异常。7Ex办公区 - 实用经验教程分享!

    java中的异常链7Ex办公区 - 实用经验教程分享!

  • 1该信息未经许可获取自百度经验
  • 2

    执行此操作的原因包括 "清洗" 从已检查的异常到运行时异常的异常, 或者执行异常的某些日志记录, 然后重新引发异常。在引发以前捕获的异常时, 最好引发新的异常, 并在该新异常上添加引用。此技术称为异常链接。7Ex办公区 - 实用经验教程分享!

  • 3

    这种心态对于在 catch 块中引发新的异常也是一样的。在新异常的构造函数中添加对旧异常的引用。7Ex办公区 - 实用经验教程分享!

  • 4

    这样做的原因是, 如果根本不处理异常, 这些异常链对于调试是非常有价值的, 而且堆栈跟踪会一直到应用程序控制台。7Ex办公区 - 实用经验教程分享!

    堆栈跟踪中的链是由 "case by" 行引用的。这是指在包装在新的异常或重新引发之前的原始异常。7Ex办公区 - 实用经验教程分享!

  • 5

    下图显示了如何创建链式异常。通过将该引用传递给 illegalstatexception 的构造函数, 将 catch 块中的异常实例链接到新的 IllegalStateException 实例。7Ex办公区 - 实用经验教程分享!

    java中的异常链7Ex办公区 - 实用经验教程分享!

    java中的异常链7Ex办公区 - 实用经验教程分享!

  • 6

    所有标准的 java 库异常都可以将可抛出作为构造函数参数, 如果您曾经创建任何新的 exception 类, 请确保遵守此规定。当运行此 (公认人为) 测试时, 它演示了 illegalstatexception 确实是由添加数字的第一个参数过高引起的:7Ex办公区 - 实用经验教程分享!

    java中的异常链7Ex办公区 - 实用经验教程分享!

  • 7

    如果没有对异常进行链接, 并且 try 中的代码会更大, 则尝试找出原始异常从何处引发的可能是一项浪费时间的工作。如果您在 catch 块中看到一个异常正在引发, 并且它不链接原始异常, 请在那里和原始异常中添加引用。你以后会感谢你自己的!7Ex办公区 - 实用经验教程分享!

  • 注意事项

    • jdk1.8

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!7Ex办公区 - 实用经验教程分享!


    标签: JAVA编程语言

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码