Ich definiere die Exceptions in der
Unit, in der auch die Klasse definiert ist, die diese
Exception schmeisst.
Zur Ordnerstruktur:
Ich verwende pro Projekt einen eigenen Ordner (und natürlich irgendwo meine Libary(
Dort steht mindestens:
ein Unterordner 'App', der enthält die Kompilate
ein Unterordner 'Shared', der enhält die gemeinsamen units
ein Unterordner 'Docs', der enhält Dokumentationen, Vorgaben etc.
Dann besteht so ein Projekt ja aus Subsystemen, die all irgendwelche Teilaufgaben bewerkstelligen und unabhängig voneinander arbeiten. Die projektbezogenen, subsystemübergreifenden Units packe ich in einen eigenen 'Shared' Ordner.
Somit sieht mein Projektverzeichnis so aus:
- Projects/Company/ProjectA/App
- Projects/Company/ProjectA/Docs
- Projects/Company/ProjectA/Shared
- Projects/Company/ProjectA/Subsystem_1
- ...
- Projects/Company/ProjectA/Subsystem_n
Jedes Subsystem bekommt einen Prefix aus 2 Buchstaben (Kundenmodul z.B. 'Kd'). Alle Units dieses Subsystems heißen 'KdXXXXXX.PAS'.
Wenn man, wie Hansa, keinen Bock hat, die Subsysteme in einzelne Verzeichnisse zu packen, dann eben nicht. Das ist letztendlich Geschmackssache. Und wenn jedes Subsystem nur aus 2 Units besteht, spare ich mir das auch noch.
Meine Projekte bestehen jedoch i.A. aus 5-20 einzelnen Tools, sodaß hier die Subsysteme durch einzelne Tool-Unterverzeichnisse ersetzt werden.