[PR #76] Moved to a more structured hierarchy #101

Open
opened 2026-01-23 11:35:12 +01:00 by admin · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/doctrine/KeyValueStore/pull/76
Author: @EmanueleMinotto
Created: 1/6/2016
Status: 🔄 Open

Base: masterHead: enhancement/excpetions-hierarchy


📝 Commits (1)

  • 6adac1b moved to a more structured hierarchy

📊 Changes

35 files changed (+271 additions, -53 deletions)

View changed files

📝 lib/Doctrine/KeyValueStore/Configuration.php (+3 -1)
📝 lib/Doctrine/KeyValueStore/Exception.php (+2 -4)
📝 lib/Doctrine/KeyValueStore/Exception/Exception.php (+4 -6)
lib/Doctrine/KeyValueStore/Exception/InvalidArgumentException.php (+27 -0)
📝 lib/Doctrine/KeyValueStore/Exception/NotFoundException.php (+2 -2)
lib/Doctrine/KeyValueStore/Exception/RuntimeException.php (+27 -0)
📝 lib/Doctrine/KeyValueStore/Id/CompositeIdHandler.php (+2 -2)
lib/Doctrine/KeyValueStore/Id/Exception/InvalidArgumentException.php (+27 -0)
📝 lib/Doctrine/KeyValueStore/Mapping/AnnotationDriver.php (+1 -1)
📝 lib/Doctrine/KeyValueStore/Mapping/ClassMetadataFactory.php (+2 -2)
lib/Doctrine/KeyValueStore/Mapping/Exception/InvalidArgumentException.php (+27 -0)
📝 lib/Doctrine/KeyValueStore/Mapping/XmlDriver.php (+2 -2)
📝 lib/Doctrine/KeyValueStore/Mapping/YamlDriver.php (+1 -1)
lib/Doctrine/KeyValueStore/Query/Exception/RuntimeException.php (+27 -0)
📝 lib/Doctrine/KeyValueStore/Query/RangeQuery.php (+1 -1)
📝 lib/Doctrine/KeyValueStore/Storage/AzureSdkTableStorage.php (+6 -6)
📝 lib/Doctrine/KeyValueStore/Storage/CassandraStorage.php (+1 -1)
📝 lib/Doctrine/KeyValueStore/Storage/CouchDbStorage.php (+2 -2)
📝 lib/Doctrine/KeyValueStore/Storage/CouchbaseStorage.php (+1 -1)
📝 lib/Doctrine/KeyValueStore/Storage/DBALStorage.php (+1 -1)

...and 15 more files

📄 Description

With this structure every exception thrown by the key value store is marked with a specific interface.

Use case:

try {
    // extract values from a DBAL storage
} catch (\Doctrine\KeyValueStore\Exception\NotFoundException $e) {
    // data not found
} catch (\Doctrine\KeyValueStore\Storage\Exception\Exception $e) {
    // generic storage-level exception
} catch (\Doctrine\KeyValueStore\Exception\RuntimeException $e) {
    // EntityManager or UnitOfWork runtime exception (extends \RuntimeException)
} catch (\Doctrine\KeyValueStore\Exception\Exception $e) {
    // EntityManager or UnitOfWork exception (extends \Exception)
} catch (\Doctrine\KeyValueStore\Exception $e) {
    // generic key value store exception
} catch (\Exception $e) {
    // generic exception
}

This is a RFC with the basic structure only, later I'll add message methods (following this article) and tests.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/doctrine/KeyValueStore/pull/76 **Author:** [@EmanueleMinotto](https://github.com/EmanueleMinotto) **Created:** 1/6/2016 **Status:** 🔄 Open **Base:** `master` ← **Head:** `enhancement/excpetions-hierarchy` --- ### 📝 Commits (1) - [`6adac1b`](https://github.com/doctrine/KeyValueStore/commit/6adac1bff018e0de7cde7e0349ef81f204f51931) moved to a more structured hierarchy ### 📊 Changes **35 files changed** (+271 additions, -53 deletions) <details> <summary>View changed files</summary> 📝 `lib/Doctrine/KeyValueStore/Configuration.php` (+3 -1) 📝 `lib/Doctrine/KeyValueStore/Exception.php` (+2 -4) 📝 `lib/Doctrine/KeyValueStore/Exception/Exception.php` (+4 -6) ➕ `lib/Doctrine/KeyValueStore/Exception/InvalidArgumentException.php` (+27 -0) 📝 `lib/Doctrine/KeyValueStore/Exception/NotFoundException.php` (+2 -2) ➕ `lib/Doctrine/KeyValueStore/Exception/RuntimeException.php` (+27 -0) 📝 `lib/Doctrine/KeyValueStore/Id/CompositeIdHandler.php` (+2 -2) ➕ `lib/Doctrine/KeyValueStore/Id/Exception/InvalidArgumentException.php` (+27 -0) 📝 `lib/Doctrine/KeyValueStore/Mapping/AnnotationDriver.php` (+1 -1) 📝 `lib/Doctrine/KeyValueStore/Mapping/ClassMetadataFactory.php` (+2 -2) ➕ `lib/Doctrine/KeyValueStore/Mapping/Exception/InvalidArgumentException.php` (+27 -0) 📝 `lib/Doctrine/KeyValueStore/Mapping/XmlDriver.php` (+2 -2) 📝 `lib/Doctrine/KeyValueStore/Mapping/YamlDriver.php` (+1 -1) ➕ `lib/Doctrine/KeyValueStore/Query/Exception/RuntimeException.php` (+27 -0) 📝 `lib/Doctrine/KeyValueStore/Query/RangeQuery.php` (+1 -1) 📝 `lib/Doctrine/KeyValueStore/Storage/AzureSdkTableStorage.php` (+6 -6) 📝 `lib/Doctrine/KeyValueStore/Storage/CassandraStorage.php` (+1 -1) 📝 `lib/Doctrine/KeyValueStore/Storage/CouchDbStorage.php` (+2 -2) 📝 `lib/Doctrine/KeyValueStore/Storage/CouchbaseStorage.php` (+1 -1) 📝 `lib/Doctrine/KeyValueStore/Storage/DBALStorage.php` (+1 -1) _...and 15 more files_ </details> ### 📄 Description With this structure every exception thrown by the key value store is marked with a specific interface. Use case: ``` php try { // extract values from a DBAL storage } catch (\Doctrine\KeyValueStore\Exception\NotFoundException $e) { // data not found } catch (\Doctrine\KeyValueStore\Storage\Exception\Exception $e) { // generic storage-level exception } catch (\Doctrine\KeyValueStore\Exception\RuntimeException $e) { // EntityManager or UnitOfWork runtime exception (extends \RuntimeException) } catch (\Doctrine\KeyValueStore\Exception\Exception $e) { // EntityManager or UnitOfWork exception (extends \Exception) } catch (\Doctrine\KeyValueStore\Exception $e) { // generic key value store exception } catch (\Exception $e) { // generic exception } ``` This is a RFC with the basic structure only, later I'll add message methods (following [this article](http://rosstuck.com/formatting-exception-messages/)) and tests. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
admin added the pull-request label 2026-01-23 11:35:12 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: doctrine/KeyValueStore#101