code: public void handleExceptionProcess(Exception e, Object w)
        {
          final String mName = "handleExceptionProcess";
          
          if(logger.isLoggable(Level.FINER)) 
            logger.logp(Level.FINE, className, mName, e.getClass().getName() + "; " + this.toString());
          
          if (!isRetryLimitReached() && excMatcher.isSkippableOrRetryable(e))
          {
            retryType = RETRY_PROCESS;
            _retryException = e;
            // Retry it.  Log it.  Call the RetryListener.
            ++_retryCount;
            logRetry(e);
  
            if (_retryProcessListeners != null) {
                for (RetryProcessListenerProxy retryProcessListenerProxy : _retryProcessListeners) {
                    retryProcessListenerProxy.onRetryProcessException(w, e);
                  }
            }
          }
          else
          {
            // No retry.  Throw it back.
            if(logger.isLoggable(Level.FINER)) 
              logger.logp(Level.FINE, className, mName, "No retry.  Rethrow ", e);
            throw new BatchContainerRuntimeException(e);
          }
        }
docs: Handle exception from a process failure.