### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

Calling `describeTimeToLive` to a non-existent table returns a result rather than throwing resource not found.

Test case pseudo-code:
```
try {
  dynamo.describeTimeToLive(new DescribeTimeToLiveRequest()
         .withTableName("non-existent-table"));
  fail();
} catch (ResourceNotFoundException ex) {
  // Pass
}
```

### Expected Behavior

Expecting call to throw 

### How are you starting LocalStack?

Custom (please describe below)

### Steps To Reproduce

#### How are you starting localstack (e.g., `bin/localstack` command, arguments, or `docker-compose.yml`)

    TestContainers from Java

### Environment

```markdown
- OS: MacOS
- LocalStack: 2.2.0
```


### Anything else?

_No response_
"""
        This fixture returns a DynamoDB table for testing.
        """
        table_name = f"ddb-test-table-{short_uid()}"
        resources.create_dynamodb_table(
            table_name, partition_key=PARTITION_KEY, client=aws_client.dynamodb
        )
        yield table_name
        aws_client.dynamodb.delete_table(TableName=table_name)
    @markers.aws.only_localstack
    def test_non_ascii_chars(self, aws_client, ddb_test_table):
        
        s = {
            "id1": {PARTITION_KEY: {"S": "id1"}, "data": {"S": "foobar123 ✓"}},
            "id2": {PARTITION_KEY: {"S": "id2"}, "data": {"S": "foobar123 £"}},
            "id3": {PARTITION_KEY: {"S": "id3"}, "data": {"S": "foobar123 ¢"}},
        }
        for _,  in s.s():
            aws_client.dynamodb.put_(TableName=ddb_test_table, Item=)
        for _id in s.keys():
             = aws_client.dynamodb.get_(
                TableName=ddb_test_table, Key={PARTITION_KEY: {"S": _id}}
            )["Item"]
            # ne
            1 = json_safe()
            2 = json_safe(s[_id])
            assert 1 == 2
    @markers.aws.only_localstack
    def test_large_data_download(self, aws_client, ddb_test_table):