通常在idea中使用IntelliJad反编译时,会遇到break MISSING_BLOCK_LABEL_365,经过测试,发现是try-catch-finally语句中finally无法正确反编译。例如:
原生代码:
}catch (Exception ex){
throw new SystemException(ex);
}finally {
DataBaseUtil.releaseResource(conn, pstmt, rs);
}
resultSet.setTotalRecord(totalRecord);
resultSet.setDataSet(list);
return resultSet;
经过反编译后的代码:
} catch (Exception ex) {
throw new SystemException(ex);
}
DataBaseUtil.releaseResource(conn, pstmt, rs);
break MISSING_BLOCK_LABEL_365;
Exception exception;
exception;
DataBaseUtil.releaseResource(conn, pstmt, rs);
throw exception;
resultSet.setTotalRecord(totalRecord);
resultSet.setDataSet(list);
return resultSet;
其实出现的break MISSING_BLOCK_LABEL,就是xjad无法反编译finally造成的。