Java 捕获以前的错误

Java 捕获以前的错误,java,arrays,swing,exception,jtextarea,Java,Arrays,Swing,Exception,Jtextarea,我正在对文本文件进行自定义验证。这是第一次对整个文件进行验证。错误(如果有)显示在另一个jtext区域中。之后,仅对可见零件进行验证。我的问题是我无法存储以前的错误并与当前的错误合并显示。例如,第一次,我在 第1行、第5行、第6行、第100行、第500行。从下一次可见部分为1-50行开始,验证将仅针对1-50行进行,因此100和500的误差将消失。我试着将以前的错误存储在一个临时变量中,下一个问题是,现在隐私错误只会变为1-50,有人能告诉我怎么做吗 我试过的代码 private v

我正在对文本文件进行自定义验证。这是第一次对整个文件进行验证。错误(如果有)显示在另一个jtext区域中。之后,仅对可见零件进行验证。我的问题是我无法存储以前的错误并与当前的错误合并显示。例如,第一次,我在 第1行、第5行、第6行、第100行、第500行。从下一次可见部分为1-50行开始,验证将仅针对1-50行进行,因此100和500的误差将消失。我试着将以前的错误存储在一个临时变量中,下一个问题是,现在隐私错误只会变为1-50,有人能告诉我怎么做吗

我试过的代码

      private void displayError() {
      errorText.setText(null); 
      String err = null;
      try{
        //tempErrors
        if(!prevErrors.isEmpty()){
            for(int i=0; i< prevErrors.size(); i++){
                err = prevErrors.get(i).toString();
                if(!errors.contains(err)){
                    errors.add(prevErrors.get(i).toString());
                }
            }
        }
    }
    catch(Exception ex){
        System.out.println(ex);
    }        

    Iterator it = errors.iterator();
    while(it.hasNext()){
        errorText.append(it.next() + "\n");
    }

    prevErrors = new ArrayList();        
    for(int i=0; i< errors.size(); i++){
       prevErrors.add(errors.get(i).toString());
    }
}
private void displayError(){
errorText.setText(null);
字符串err=null;
试一试{
//温度
如果(!prevErrors.isEmpty()){
对于(int i=0;i
您的问题可以通过以下方法得到更简单的解决:

  • 创建一个并将其称为
    错误
    。(键为行号,值为错误信息。)
  • 对文件进行一次解析,并用找到的错误(和行)填充
    错误
    -map
  • 当文件的一部分可见时,您可以使用该方法获取该部分中的错误:

    SortedMap<Integer, String> visibleErrors = errors.subMap(fromLine, toLine + 1); 
    
    SortedMap visibleErrors=errors.subMap(fromLine,toLine+1);
    
    您的问题可以通过以下方法得到更简单的解决:

  • 创建一个并将其称为
    错误
    。(键为行号,值为错误信息。)
  • 对文件进行一次解析,并用找到的错误(和行)填充
    错误
    -map
  • 当文件的一部分可见时,您可以使用该方法获取该部分中的错误:

    SortedMap<Integer, String> visibleErrors = errors.subMap(fromLine, toLine + 1); 
    
    SortedMap visibleErrors=errors.subMap(fromLine,toLine+1);