pl: Versuch einer Erläuterung zur Sinnhaftigkeit von Exception-Objekten

Beitrag lesen

Ja. Was ist denn eigentlich ein Objekt, was eine Instanz und wozu gibt es überhaupt Klassen? Die Antwort kann man allgemein verfassen:

Objekte referenzieren Datenstrukturen wie z.B. Arrays. Erst die Klassenzugehörigkeit macht ein Objekt zu einer Klasseninstanz und befähigt es, Methoden aufzurufen welche die Klasse definiert.

Diese Definition findest Du auch in c++ u.a. Programmiersprachen wieder. Perl ab v5 macht genau diese Definition sehr anschaulich:

$object = {};  # HashRef
foo($object);  # an Funktion übergeben

# wenn das Objekt selbst die Funktion aufrufen soll
# muss es den Namen seiner Klasse kennen
bless $object, 'main';

# und nun darf es die Funktion selbst aufrufen
# dabei übergibt es sich selbst
$object->foo();

Das Ergebnis ist dasselbe, in beiden Fällen findet eine Übergabe statt. So kann innerhalb der Funktion auf die HashRef zugegriffen werden, die gewöhnlich $this oder $self genannt wird.

Natürlich kann man einer Exception auch komplexe Datenstrukturen zum letzten Geleit mitgeben. Und natürlich dürfen das auch Instanzen sein, die in dem Moment erstellt werden wenn der Kamerad stirbt.

Nur stellt sich dann die Frage warum es eine Instanz sein muss. Antwort siehe oben: Wenn es darum geht, mit dieser Instanz Methoden aufzurufen. Oder um bestimmte Dinge automatisieren zu können. Z.B. wird der Destruktor ja auch zwangläufig gerufen beim Tod einer jeden Instanz. Darin könnte sich dann auch ein Exception-Objekt verewigen wenn es seinen lezten Seufzer tut.

Der Möglichkeiten gibt es eben viele in OO. Genausogut gibt es die aber auch ohne.

0 85

Wozu Exception Objects

pl
  • programmiertechnik
  1. 2
    dedlfix
    1. 0
      pl
      1. 1
        dedlfix
        1. 0
          pl
          1. 0
            dedlfix
            1. 0
              pl
              • sonstiges
              1. 0
                dedlfix
                1. 0
                  pl
                  1. 0
                    perl
                    • perl
                    1. 0
                      pl
                      1. 0
                        perl
                        1. 0
                          pl
                          1. 0
                            perl
                  2. 0

                    NonSenseException

                    Camping_RIDER
                    • menschelei
      2. 0
        Robert B.
        1. 0
          Matthias Apsel
          1. 0
            Robert B.
            1. 0
              Rolf B
              1. 0
                Robert B.
        2. 0
          pl
          1. 0
            perl
          2. 0
            Rolf B
            1. 0
              pl
              1. 0
                Robert B.
                1. 0
                  pl
                  1. 0
                    Robert B.
              2. 1
                Rolf B
                1. 0
                  pl
                  1. 3
                    Tabellenkalk
          3. 1
            Robert B.
            1. 0
              pl
              1. 0
                Robert B.
                1. 0
                  pl
                  1. 0
                    Robert B.
                2. 1
                  dedlfix
                  1. 0
                    pl
                    1. 0
                      Robert B.
                      1. 0
                        pl
                        1. 0
                          Robert B.
                    2. 1
                      dedlfix
                      1. 0
                        pl
                        1. 0
                          Robert B.
                          • menschelei
                          • programmiertechnik
                        2. 2
                          dedlfix
            2. 1
              1unitedpower
              1. 0
                Robert B.
          4. 2

            Versuch einer Erläuterung zur Sinnhaftigkeit von Exception-Objekten

            Camping_RIDER
            1. 0
              pl
              1. 0
                Robert B.
              2. 0
                Camping_RIDER
            2. 0
              pl
              1. 0
                Robert B.
                • c++
                • programmiertechnik
                1. 0
                  pl
              2. 0
                Camping_RIDER
      3. 0
        Robert B.
        1. 0
          pl
          1. 0
            Robert B.
    2. 0
      Linuchs
      1. 0
        Matthias Apsel
        1. 0
          Linuchsx
          1. 0
            Matthias Apsel
            1. 1
              Christian Kruse
  2. 3
    Matti Mäkitalo
    1. 0
      pl
      1. 4
        Matti Mäkitalo
  3. 0
    Rolf B
    1. 0
      pl
      1. 0
        Rolf B
        1. 0
          pl
  4. 0
    pl
    1. 0
      Robert B.
      1. 0
        pl
        1. 0
          Robert B.
          • menschelei
          • programmiertechnik
          1. 0
            pl
            1. 0
              Robert B.
              • menschelei
    2. 0
      Rolf B
      1. -1
        pl
        1. 1
          Rolf B
          1. 0
            pl
            1. 1
              Mitleser
            2. 2
              Rolf B
              1. 0
                Robert B.
                • zu diesem forum
              2. 0
                JürgenB
                1. 0
                  Camping_RIDER
        2. 0
          Robert B.
          • menschelei