Rolf B: Wozu Exception Objects

Beitrag lesen

Hallo pl,

eigentlich waren da genug Beispiele. Für individuelle Attribute spezieller Exceptions, für Funktionalität der Laufzeitplattform, die an der Systemklasse "Exception" hängt (z.B. Beschaffen des Stacktrace), für filternde Catches...

Diese Runtime-Funktionalität scheint in Perl so nicht gegeben, in JavaScript übrigens auch nicht. Mit JavaScript kann ich beliebige Werte werfen, in Perl kann ich beliebige Werte als Todesursache angeben. In PHP, Java oder C# nicht, da muss das geworfene Dings werfbar sein (implementiert eine Art von Throwable, oder ist Subklasse von System.Exception) oder das Ding fällt mir mein Werfen auf die Füße. D.h. viele Laufzeitumgebungen zwingen dich einfach zum Gebrauch eines vordefinierten oder selbst abgeleiteten Exception-Objekts.

Perl und JavaScript tun das nicht, und bringen demzufolge auch ein paar Features nicht mit, die eine zwangsobjektorientierte Exceptionsteuerung hat. Mozilla hat zwar versucht, im Firefox bedingte Catches einzubauen (catch (e if e instanceOf FooException)), aber das ist nicht Standard geworden. Das stack-Property ist zwar immerhin breit implementiert, aber nicht mit einheitlicher Struktur.

Insofern: Mangels Standardisierung und Unterstützung durch die Laufzeitumgebung ist in Perl und JavaScript der Nutzen von Exception-Objekten weniger groß als in anderen Sprachen. In JS gibt's immerhin die Error-Klassen, aber die Standardproperties sind mager.

Nebenbei:

Perl's Error.pm ist übrigens deprecatet.

Zumindest nicht mehr vom Autor empfohlen. Nimmst Du eben seine Empfehlung try::tiny.

Rolf

--
sumpsi - posui - clusi
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