Robert B.: Wozu Exception Objects

Beitrag lesen

Moin pl,

mal der Versuch eines Beispiels aus den Naturwissenschaften: Im Allgemeinen ist die Division durch 0 nicht definiert, durch Grenzwertbildung kann man allerdings unendlich als Ergebnis setzen. Die Divison durch 0 ist ein arithmetischer Fehler, objektorientiert gesprochen also eine abgeleitete Klasse, in C++ könnte man das so modellieren:

class DivisionDurch0 : public ArithmetischerFehler {
    // …
};

Die Vision wäre dann z.B. wie folgt modelliert:

float operator/(const float z, const float n) {
    if (n == 0.) {
        throw DivisionDurch0;
    }

    return z / n;
}

Ein Taschenrechner o.ä. wird im Allgemeinen Rechenfehler abfangen, während eine Anwendung aus der Physik mit unendlich umgehen kann, d.h.:

// Taschenrechner:
try {
    float erg = zaehler / nenner;
}
catch (ArithmetischerFehler &af) {
    // …
}


// Unendlich
float erg;

try {
    erg = zaehler / nenner;
}
catch (DivisionDurch0 &dd0) {
    erg = INFINITY;
}

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