Spring batch 在spring批处理中指向块中的跳过项和错误字段 情景1

Spring batch 在spring批处理中指向块中的跳过项和错误字段 情景1,spring-batch,Spring Batch,跳过侦听器界面如下所示: public interface SkipListener<T,S> extends StepListener { void onSkipInRead(Throwable t); void onSkipInProcess(T item, Throwable t); void onSkipInWrite(S item, Throwable t); } 显然,如果上面的文件中字段2为空,则块将抛出“字符串索引超出绑定异常”,并将被跳过 所以,在skip

跳过侦听器界面如下所示:

public interface SkipListener<T,S> extends StepListener {
 void onSkipInRead(Throwable t);
 void onSkipInProcess(T item, Throwable t);
 void onSkipInWrite(S item, Throwable t);
}
显然,如果上面的文件中字段2为空,则块将抛出“字符串索引超出绑定异常”,并将被跳过

所以,在skip listener中,我想要的是关于抛出错误的列的信息

在这里,由于名为2的字段给出了错误,我想在skip listener中登录的信息类似于“Property one抛出错误”字符串索引越界异常“在第10行”,或者如果可能,更具体的“Property one在第10行为空”,这对不懂java行话的企业更有意义

希望我能澄清我的疑虑


谢谢你的阅读

场景1

要从读取文件中获取跳过项目的行号,可以:

  • 对于onSkipInRead-实现own/wrap读取器以处理异常
  • onSkipInProcess—实现自己的linemapper,将行号写入项或在步骤上下文中写入当前行号
  • onsKipInWrite-与onSkipInProcess相同
要从读取表格中获取跳过项目的行号,您可以:

  • 对于onskipread-实现own/wrap读取器以处理异常,但我不确定是否可以在此处获取行号,行号可能只是当前块的开始号
  • onSkipInProcess—实现自己的行映射器,它将行号写入项或在步骤上下文中写入当前行号
  • onsKipInWrite-与onSkipInProcess相同
场景2


请参见场景1,并在处理器中添加一个try/catch块,这样您就可以抛出自己的异常,例如属性位置信息,或以类似方式更改步骤上下文

“是否可能”问题有些模糊-通常的答案是肯定的,您能更具体一点吗?@MichaelLange:请再次查看问题。我试图解释这些疑问。谢谢
if(two.charAt(4) == '_')
   { // do some processing }