Ausnahme-Annotationen für propagierte Ausnahmen

9

Angenommen, ich habe eine Funktion a , die eine Ausnahme $e auslöst. Daher sollte laut phpdoc eine Annotation @throws über der Definition von a stehen.

Wenn ich eine andere Funktion b rufe a

habe %Vor%

ist es gute Praxis / schlechte Praxis / richtig / falsch, eine @throw Annotation über der Definition von b zu haben, die anzeigt, dass b diese Art von Ausnahme auslösen könnte?

    
marcosh 28.09.2015, 14:29
quelle

2 Antworten

3

@throws Annotation ist für den Entwickler anzugeben, wenn die Funktion () eine Exception auslösen kann Zuerst , müssen Sie die Frage stellen: warum nicht die Ausnahme in% fangen co_de% Methode, gibt es einen triftigen Grund dafür?
Ja? so müssen Sie b() Annotation hinzufügen, wird es Sie oder andere Entwickler, die Funktion () @throws IS verwenden NICHT SICHER und sie werden entscheiden, ob sie es wollen Fangen oder propagieren Sie die Ausnahme
Auch , da PHP Sie nicht dazu zwingt, eine von einer anderen Funktion ausgelöste Ausnahme abzufangen, wurde die b() -Anmerkung zu muss / obligatorisch üben

    
Halayem Anis 28.09.2015, 14:58
quelle
1

Tatsächlich wirft b() Ausnahmen. Ob dies direkt oder indirekt geschieht, ist für den Aufrufer irrelevant. Die Annotationen sollen nun keine internen Implementierungsdetails dokumentieren, die sich mit verschiedenen abgeleiteten Klassen ändern oder sogar variieren können. Stattdessen dokumentieren die Anmerkungen das sichtbare Verhalten für den Aufrufer , sodass die effektiven Ausnahmen ebenfalls Teil der Anmerkungen sein sollten.

    
Ulrich Eckhardt 28.09.2015 15:31
quelle

Tags und Links