All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.opencsv.bean.exceptionhandler.CsvExceptionHandler Maven / Gradle / Ivy

package com.opencsv.bean.exceptionhandler;

import com.opencsv.bean.CsvToBean;
import com.opencsv.bean.StatefulBeanToCsv;
import com.opencsv.exceptions.CsvException;

/**
 * This interface defines a generic way of dealing with exceptions thrown
 * during the creation of beans or their conversion to CSV output.
 * @author Andrew Rucker Jones
 * @since 5.2
 */
@FunctionalInterface
public interface CsvExceptionHandler {

    /**
     * 

Determines how opencsv will handle exceptions that crop up during * bean creation or writing. * There are three ways of dealing with an exception:

*
    *
  1. Ignore the exception. In this case, return {@code null}.
  2. *
  3. Queue the exception. In this case, return either the original * exception thrown, or a new exception that meets your needs better.
  4. *
  5. Halt processing by throwing the exception. In this case, throw * the exception or a new exception that meets your needs better.
  6. *
*

Please be cautioned: Due to the multi-threaded nature of opencsv's * conversion routines, there is no guarantee that the exception thrown, * if your chosen error handler throws exceptions, is the error in the * input that would have caused the exception to be thrown if the input * were processed in strict sequential order. That is, if there are four * errors in the input and your error handler queues the first three but * throws the fourth, the exception thrown might relate to any * of the four errors in the input.

*

If your exception handler queues a certain number of exceptions * before throwing one, opencsv makes a best-faith effort to make sure all * of the exceptions marked for queueing are actually available via * {@link CsvToBean#getCapturedExceptions()} or * {@link StatefulBeanToCsv#getCapturedExceptions()} after processing, * but there are no absolute guarantees.

*

This method must be thread-safe.

* @param e The exception that was thrown * @return The exception to be queued, or {@code null} if the exception * should be ignored * @throws CsvException If a halt to all processing is desired */ CsvException handleException(CsvException e) throws CsvException; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy