gpt4 book ai didi

java - 我可以在使用 Spring AOP 的方法中拦截空指针异常吗?

转载 作者:行者123 更新时间:2023-11-29 03:50:03 29 4
gpt4 key购买 nike

我们有一堆 pdf 报告类,在大量导入存档数据后,当数据位丢失时,它们偶尔会抛出空指针异常,例如thing.getOtherThing().getText(); 将没有 OtherThing 并且报告将失败。

在我看来,我们有几个选择

  1. 修复数据 - 不是很清楚每种情况下的数据应该是什么,在某些情况下是人为判断的问题
  2. 将 try/catches 放在各处并重新抛出一个有用的异常以向用户冒泡 - 大量的工作和丑陋的代码但对用户有用
  3. 到处进行空检查 - 不,谢谢
  4. 处理 DAO 代码以在查询中执行 coalesce/nvl 并生成在缺失字段(或银行)中包含 N/A 的报告 - 好的,但不是很有用

或者……我们可以在这里用 AOP 做点什么吗?是否可以拦截某些类/方法中抛出的空指针?当这些信息被截获时,可以获得什么级别的信息?请记住,方法中的多个位置可能会抛出空指针 :(

谢谢。

最佳答案

呃..这可能会很痛苦,但我真诚地建议你仔细检查你的代码并在任何合理的地方检查是否为 null,为自己构建一个实用程序类,这样你就可以做类似的事情

MyUtilityHelper.checkNotNull(toCheck, elegantMessage)

并让该方法抛出一些您可以获得更多信息的东西。

AOP 在这里真的不适用恕我直言,你不想用 AOP 做那些应该用顺序逻辑完成的事情,只是因为代码更适合顺序处理......当你想添加时 AOP 是合适的水平功能层,例如安全性、日志记录...

关于java - 我可以在使用 Spring AOP 的方法中拦截空指针异常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9211268/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com