Serialization von Exceptions

Hallo alle,

ich fange gerade mit C# an und habe eine frage:
Wozu macht man serialization? So wie ich es verstanden habe, wird es zur Speicherung verwendet. Was nutzt es bei den Exception? Wo kann ich die exception speichern?

Vielen Dank

Lisa

Auch hallo.

Wozu macht man serialization? So wie ich es verstanden habe,
wird es zur Speicherung verwendet.

Auch. Serialisierung heisst, dass ein konkretes Objekt in einen Datenstrom umgewandelt wird (und vice versa).

Was nutzt es bei den
Exception? Wo kann ich die exception speichern?

Eine Exception ist ein Fehlerfall (dt. Ausnahme): ein bestimmtes Ergebnis ist nicht vorgesehen und das Programm soll in diesem Fall eine bestimmte Reaktion zeigen. Und der Wert einer Exception lässt sich als Variable speichern.

HTH
mfg M.L.

Danke für die Antwort, aber es ist mir trotzdem nicht ganz klar: heisst das, dass wenn ich meine Exceptions serialisiere, dass ich sie in einen Datenstrom umwandle. Aber wozu? Und es gibt noch deserialisieren!

Ich würde gerne einen Progrmmcode (C#) verstehen. Und die Befehle verstehe ich schon, aber habe irgendwie keinen Überblick, wozu das ganze bedeutet.

Sorry, bin ziemlcih neu in C#
Danke

Lisa

Hallo!

Die Serialisierung benötigt man häufig, wenn es darum geht, das zwei Anwendungen zusammenarbeiten (z.B. in einer Client-Server-Lösung).
Dann müssen die 2 Anwendungen miteinander kommunizieren und es ist dabei einfach um Welten einfacher, wenn man ganze Objekte/Objektbäume mit einfachen Mitteln über einen Datenstrom zwischen den Programmen übertragen kann, als dass man sich für jede Nachricht wieder überlegen muss: „Wie sag’ ich’s dem anderen?“.

Welche Objekte dabei übertragen werden, ist ziemlich egal, sie müssen halt serialisierbar sein (d.h. u.a. nur Eigenschaften haben, die aus einfachen Datentypen oder ihrerseits wieder serialisierbaren Klassen bestehen). Eine Exception ist in diesem Sinn einfach ein Objekt, das z.B. deswegen serialisiert und deserialisiert wird, weil beim Server ein Problem aufgetreten ist und der Client die Info braucht, was für ein Problem das genau war.
Beispiel:
Client schickt eine Anfrage zum Server, dass er den Inhalt einer bestimmten Datei haben will.
Der Server schaut nach und stellt fest, dass es diese Datei aber nicht gibt, es wird am Server eine FileNotFoundException ausgelöst (letzlich von der .NET Runtime eine Instanz der Klasse FileNotFoundException generiert).
Der Client erfährt nichts von alledem.
Erst wenn der Server die geworfene Exception nimmt, serialisiert und z.B. als Antwort auf die Anfrage wieder zurück an den Client schickt, kann dieser feststellen, was passiert ist.

Gruß,
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]