【发布时间】:2012-02-09 21:53:22
【问题描述】:
我们有一堆 pdf 报告类,在大量导入存档数据后,它们开始偶尔在数据位丢失时抛出空指针异常,例如thing.getOtherThing().getText(); 将没有 OtherThing 并且报告将失败。
在我看来,我们有几个选择
- 修复数据 - 不太清楚每种情况下的数据应该是什么,在某些情况下是人为判断的问题
- 将 try/catch 放在任何地方并重新抛出一个有用的异常以向用户冒泡 - 大量的工作和丑陋的代码,但对用户很有用
- 到处都放空检查 - 不用了,谢谢
- 处理 DAO 代码以在查询中执行合并/nvl 并在缺少的字段(或银行)中生成不适用的报告 - 好的,但没那么有用
或者……我们可以在这里用 AOP 做点什么吗?是否可以拦截某些类/方法中抛出的空指针?当这些被截获时,可以获得什么级别的信息?请记住,方法中的多个位置可能会抛出空指针:(
谢谢。
【问题讨论】:
-
AOP 就像魔法一样。关注此链接stackoverflow.com/questions/7637512/…
-
注意——除非
thing是一个spring bean,否则你需要使用aspectj compile-或load-time-weaving(不是Spring AOP代理)。不一定赞同你的解决方案,只是说。
标签: java spring spring-aop