Truncation Error is inconsistent between fast and standard (non-fast) tokenizers
## Environment info
- `transformers` version: 4.17.0
- Platform: Linux-5.4.144+-x86_64-with-Ubuntu-18.04-bionic
- Python version: 3.7.12
- PyTorch version (GPU?): 1.10.0+cu111 (False)
- Tensorflow version (GPU?): 2.8.0 (False)
- Flax version (CPU?/GPU?/TPU?): not installed (NA)
- Jax version: not installed
- JaxLib version: not installed
- Using GPU in script?: NO
- Using distributed or parallel set-up in script?: NO

### Who can help
Library:
- Tokenizers: @SaulLu

## Information
When truncation cannot be performed due to length issue Fast tokenizer raises Exception whereas standard (non-fast) only logs error and do not perform truncation at all. I only tested with AutoTokenizer (bert-base-uncased) but believe this is general on the level of `PreTrainedTokenizer` and `PreTrainedTokenizerFast`.

## To reproduce

```python
from transformers import AutoTokenizer
from transformers.tokenization_utils_base import (
    BatchEncoding,
    PaddingStrategy,
    TruncationStrategy,
)

fast_tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased", use_fast=True)
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased", use_fast=False)

text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
text_pair = "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

kwargs = {
    "text": text,
    "text_pair": text_pair,
    "max_length": 16,
    "truncation": TruncationStrategy.ONLY_FIRST
}

# logs: We need to remove 69 to truncate the input but the first sequence has a length 44. Please select another truncation strategy than TruncationStrategy.ONLY_FIRST, for instance 'longest_first' or 'only_second'.
print("Tokenizer encode_plus")
batch = tokenizer.encode_plus(**kwargs)
print(len(batch.input_ids) <= kwargs["max_length"])

# raises Exception: Truncation error: Sequence to truncate too short to respect the provided max_length
print("Fast Tokenizer encode_plus")
fast_tokenizer.encode_plus(**kwargs)
```

## Expected behavior

I expect consistent behavior among tokenizers. Either fast and non-fast just log error and do not truncate or both of them raise exception that can be easily identified (ideally custom not just general `Exception` with string description).

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread.

Please note that issues that do not follow the [contributing guidelines](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md) are likely to be ignored.