Robert B.: Wozu Exception Objects

Beitrag lesen

Moin,

Vermutlich wird unter der Haube eine Klassenvariable gesetzt.

Es wird ein Objekt der Klasse erzeugt.

Auf jeden Fall steckt eine statische Variable dahinter, welche den Fehlertext beeinhaltet.

Nö:

  1. ist es keine statische Variable.
  2. Muss die Variable keinen Text enthalten. Mein Beispiel funktioniert auch „in günstig“:
class ArithmetischerFehler {};

class DivisionDurch0 : public ArithmetischerFehler {};

Objekte dieser beiden Klassen haben per Definition in C++ eine Speichergröße von 1 Byte:

std::cout << sizeof(ArithmetischerFehler) << ' ' << sizeof(DivisionDurch0) << '\n';
// gibt aus:
// 1 1

Ansonsten kann jede Exception-Klasse die Attribute definieren, die sie benötigt; eine Parser-Exception z.B. das falsche Token, Dateiname, Zeilennummer und Zeichenposition.

Die Frage ist, welchen Vorteil es bringt, anstatt eines Fehlertextes an throw() eine Klassenmethode bzw. den Namen einer Klasse zu übergeben? Womit wahrscheinlich sogar eine Instanz erzeugt wird, aber wozu?

Ich möchte im Fehlerfall nicht erst einen Fehlertext zusammenstellen und im catch-Block wieder auseinander nehmen müssen – vor allem, wenn wie oben gezeigt gar kein Fehlertext nötig ist.

Viele Grüße
Robert

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