public static void main(String[] args) {
String[] s1 = new String[2];
s1[0] = "第一个批次";
s1[1] = "第二个批次";
for(String s : s1){
System.out.println("正在处理..." + s);
String[] s2 = new String[5];
s2[0] = "第一笔数据";
s2[1] = "第二笔数据";
s2[2] = "第三笔数据";
s2[3] = "第四笔数据";
s2[4] = "第五笔数据";
System.out.println("当前批次待处理的明细数 : " + s2.length);
for(int i = 0; i < s2.length; i++){
try{
System.out.println("清算处理..." + s2[i]);
if(i == 2){
throw new RuntimeException("抛出错误");
}
}catch(Exception e){
System.out.println("=================捕获异常处理");
e.printStackTrace();
}
}
}
String[] s1 = new String[2];
s1[0] = "第一个批次";
s1[1] = "第二个批次";
for(String s : s1){
System.out.println("正在处理..." + s);
String[] s2 = new String[5];
s2[0] = "第一笔数据";
s2[1] = "第二笔数据";
s2[2] = "第三笔数据";
s2[3] = "第四笔数据";
s2[4] = "第五笔数据";
System.out.println("当前批次待处理的明细数 : " + s2.length);
for(int i = 0; i < s2.length; i++){
try{
System.out.println("清算处理..." + s2[i]);
if(i == 2){
throw new RuntimeException("抛出错误");
}
}catch(Exception e){
System.out.println("=================捕获异常处理");
e.printStackTrace();
}
}
}
}
以上代码中异常捕获中的打印堆栈,与循环中的处理无先后顺序,第一笔数据打印的堆栈有可能在第二笔数据处理之后。
打印堆栈可能是有多线程机制