Wie kann ich eine bessere Fehlermeldung erhalten, wenn ein erforderliches Attribut in Moose nicht bereitgestellt wird?

8

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!

    
BrianH 19.04.2011, 18:11
quelle

3 Antworten

5

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"?

    
BrianH 19.04.2011, 19:19
quelle
2

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.

    
Tanktalus 19.04.2011 19:05
quelle
0

Da "name" erforderlich ist, müssen Sie dieses Attribut aus dem Konstruktor auffüllen. So:

%Vor%

Dies sollte Ihr Problem beheben.

    
Greengaroo 26.09.2011 14:26
quelle

Tags und Links