Ich bin neu bei Moose. Bis heute waren unsere Umgebungen Perl 5.8.2, die Moose nicht unterstützen würden.
Ich arbeite an einigen Beispielen und dachte mir, dass die Einstellung "required = & gt; 1" für ein Attribut nützlich wäre. Wenn ich jedoch diese Option verwende, ist die zurückgegebene Fehlermeldung nicht wirklich brauchbar.
Hier ist ein Beispiel:
cat.pl:
%Vor%Wenn ich es ausführe:
%Vor%Wenn einer unserer Nicht-Perl-Operatoren eine solche Fehlermeldung sieht, werden sie wahrscheinlich ausflippen. Ich fürchte, sie werden nicht erkennen, dass alle 5 Zeilen in der Fehlermeldung tatsächlich ein Teil desselben Fehlers sind.
Gibt es eine Möglichkeit, eine nette Fehlermeldung zu erhalten, wenn ein erforderliches Attribut nicht geliefert wird?
Etwas wie Krächzen, ich kann mir eine Nachricht wie folgt vorstellen:
%Vor%Auch hier bin ich neu bei Elch, also könnte dies eine einfache Einstellung sein, die ich vermisse.
Vielen Dank im Voraus!
Ich denke, ich habe vielleicht eine Lösung für meine Anforderung gefunden, aber ich bin mir nicht sicher, ob es die beste Lösung ist.
Und wie @ Tanktalus hervorhebt, ist es sinnvoll, eine detaillierte Fehlermeldung zu haben.
Für die Zwecke meiner Frage scheint die Erweiterung MooseX :: Constructor :: AllErrors arbeiten:
%Vor%Beim Laufen bekomme ich:
%Vor%Was ich dachte.
Da ich überhaupt nicht mit Moose vertraut bin, ist diese Erweiterung in Ordnung, oder wird sie alle Fehlermeldungen "muffen"?
Ich bevorzuge die lange Fehlermeldung - denn wenn ich einen erforderlichen Parameter verpasse, möchte ich meine Nicht-Perl-Benutzer ausflippen lassen: Ich habe offensichtlich etwas in Entwicklung, Komponententest und Systemtest, wenn es den ganzen Weg zu einem Benutzer mit dieser Art von Nachricht bekommt.
Wohlgemerkt, ich lasse auch tödliche Warnungen eingeschaltet, wenn ich in die Produktion gehe. Ich bevorzuge es, dass meine Fehler spektakulär sind, so dass ich sie nicht versehentlich ignorieren kann.
Da "name" erforderlich ist, müssen Sie dieses Attribut aus dem Konstruktor auffüllen. So:
%Vor%Dies sollte Ihr Problem beheben.