el中函数调用结果始终为null

一、问题描述

某日,一研发前来让寻求帮助,“为什么我的函数始终返回空,即使把函数修改为只包含一行抛异常的语句,也是如此。

二、尝试路径

  1. 怀疑IDE函数编译失败,只保留了之前某个始终返回为空的版本。结果,反编译Class发现没问题;
  2. 从函数这个点向上溯源,查看调用函数的流程和表达式。结果,发现调用函数的表达式是一个三元表达式,例如“${ condition ? fn:myFunction(), null}”。
  3. 根据第2条猜测是由于研发测试时,condition始终为false导致的。根据研发提供的报文证实猜测。

三、反思

  1. 一个异常都是发生在一个完整的操作链中的一个节点。我们要做的就是根据这个故障点向上回溯排查原因,直到源头。

评论