2017-10-14 11 views
0

CSV 파일을 읽으려고 시도하고 해당 CSV 파일을 기반으로 새 개체를 만듭니다. SuperCSV 라이브러리를 사용하여 성공적으로 수행 할 수 있지만 오류가 발생하면 (예 : 특정 셀이 null 인 경우) 예상대로 오류가 발생합니다. ArrayList에있는 모든 오류를 수집하려고하는데, 첫 번째 예외가 발생하면 모든 것이 중지됩니다. 프로세서에 오류가 있더라도 SuperCSV CsvBeanReader를 다음 행으로 계속 진행하려면 어떻게해야합니까? try/catch 블록 내부에 루프 조건이 있습니다. 아래 코드 :Java SuperCSV CsvBeanReader 계속 오류가 발생 함

답변

1

가장 중요한 것은 루프 내에서 try catch를 이동하여 예외 발생시 루프가 멈추지 않도록하는 것입니다. 여기 내가 어떻게 할 것인가이다.

private void readProperties() 
{ 
    try 
    { 
    beanReader = new CsvBeanReader(new FileReader(convFile), CsvPreference.STANDARD_PREFERENCE); 

    while (readNextProperty()) 
    { 
    } 
    } 
    catch (Exception e) 
    { 
    } 
    finally 
    { 
    if(beanReader != null) 
    { 
     beanReader.close(); 
    } 
    } 
} 

/** Returns true when there are more properties to read. */ 
private boolean readNextProperty() 
{ 
    try 
    { 
    Property property = beanReader.read(Property.class, header, processors); 
    if (property == null) 
    { 
     return false; 
    } 

    // logic in here 

    } 
    catch (SuperCsvException e) 
    { 
    invalidProperties.add(new BadProperty(e.getCsvContext())); 
    System.out.println(e); 
    } 

    return true; 
}