code: @FFDCIgnore({ SSLPeerUnverifiedException.class, Exception.class })
      private Subject tryToAuthenticate(SSLSession session) throws SASException {
          Subject transportSubject = null;
          try {
              transportSubject = authenticateWithCertificateChain(session);
          } catch (SSLPeerUnverifiedException e) {
              throwExceptionIfClientCertificateAuthenticationIsRequired(e);
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "The peer could not be verified, but ignoring because client certificate authentication is not required. The exception is: " + e.getMessage());
              }
          } catch (Exception e) {
              /*
               * All the possible exceptions, including AuthenticationException, CredentialExpiredException
               * and CredentialDestroyedException are caught here, and re-thrown
               */
              throwExceptionIfClientCertificateAuthenticationIsRequired(e);
          }
  
          return transportSubject;
      }
docs: /*
  Attempt to authenticate using a certificate chain. Handles exceptions.