Spezifischere Exceptions lassen sich besser verarbeiten.
Aus ausgelagertem ÜberprüfungsCode ist es schwer solche zu schmeißen.
Beispiel:
Bei mir hat jede Domäne ihre eigene Throwable-Familie.
Vorteile:
- im
catch
wahlweise Eltern und Kinder fangen. - der ClassName ersetzt die Message bzw. dient als Key für die Übersetzung.
- Reflektionen
- previous Exception nutzen
- ...
<?php
namespace my_app;
class throwableException extends \Exception
{
}
<?php
namespace my_app\Customer;
final class EntityNotFoundException extends \my_app\throwableException
{
}
<?php
namespace my_app\Product;
final class EntityNotFoundException extends \my_app\throwableException
{
}