Wenn du die Exception unterschiedlich behandeln willst.
Zum Beispiel du erwartest 5 Dateien in einem Ordner, es befinden sich aber nur 3 drin.. dann wirfst du eine eigne Exception. Sprich:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| public File[] GetFiles(string path) { DirectoryInfo dir = new DirectoryInfo(path);
File[] files = dir.GetFiles();
if (files.Length < 5) { throw new MyException("Not enough files in directory"); }
return files; } |
Bei der Verwendung möchtest du den Pfad ändern, wenn weniger als 5 Datein drin liegen, bzw. einen Fehleranzeigen, wenn der PFad überhaupt nicht existiert(dann wirft GetFiles eine DirectoryNotFoundException).
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| public static void Main(string[] args) { Blub b = new Blub(); File[] files; try { files = b.GetFiles("directoryA"); catch (MyException expt) { files = b.GetFiles("directoryB"); } } |
So mal grob..
D.h. dadurch das du einen eigenen Exception typ (MyException) verwendest kannst du unterschiedlich im catch block darauf reagieren. Wenn nun das Verzeichnis "directoryA" überhaupt nicht existiert beendet sich das Programm und die DirectoyNotFonudException wird angezeigt. Existiert "directoryA" hat aber weniger als 5 files drin wird er das Verzeichnis "directoryB" versuchen.
Ich hoffe das Beispiel veranschaulicht dir den Nutzen von "Benutzerdefinierten" Exceptions, bzw. Exceptions allgemein. Den du könntest ja auch individuell über catch(DirectoryNotFoundException expt) auf nicht existierende Verzeichnisse reagieren.
Gruß