- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
BeanShell: Abfangen von Fehlern
Ich habe mal wieder eine Frage :smileyconfused: ... eher eine Anregung:
Ist es mรถglich, Fehler abzufangen, die ein Beanshell produziert? Ich meine Laufzeitfehler aller Art.
Die Situation ist:
Bei einem BeanShell-Skript fehlte ein Import-Statement.
Es wurde jedoch an keiner Stelle ein Fehler ausgegeben. Ist es mรถglich, diesen Fehler irgendwo sichtbar zu machen - vielleicht in einer globalen Variable, die man am Ende des Renderings einer Seite auslesen kรถnnte?
Das wรผrde die Suche nach Fehlern ungemein erleichtern.
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Georg,
kannst du bitte nรคher beschreiben wie das Skript aufgerufen wird und was der Fehler ist.
Bei mir funktioniert das nรคmlich einwandfrei.
Template:
=======
blubs
$CMS_RENDER(script:"hurz")$
=======
Skript:
=====
context.logInfo("start");
context.logInfo(MyNotImportedClass.class);
=====
Fehler der Vorschau:
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Georg,
kannst du bitte nรคher beschreiben wie das Skript aufgerufen wird und was der Fehler ist.
Bei mir funktioniert das nรคmlich einwandfrei.
Template:
=======
blubs
$CMS_RENDER(script:"hurz")$
=======
Skript:
=====
context.logInfo("start");
context.logInfo(MyNotImportedClass.class);
=====
Fehler der Vorschau:
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Danke... gewusst wie, dann klappt's auch ๐
Trotzdem noch als Anregung:
Wenn man eine Variable (etwa #global.preview.errors o.รค.) mit genau solchen Fehlern auslesen kรถnnte, wรคre das eine noch grรถรere Hilfe fรผr die Entwicklung:
So kรถnnte man sich die Fehler direkt am Ende einer Seite ausgeben lassen.
(Wir benutzen ein Flag, um Debug-Meldungen schon wรคhrend des Renderings ein/ausschalten zu kรถnnen).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Das gibt es schon:
$CMS_SET(#global.collectLogs, 4)$ $-- -1: off, 0: TRACE, 1: DEBUG, 2: INFO, 3: WARN, 4: ERROR --$
...some template code..
$CMS_FOR(logEntry, #global.logs)$
$CMS_VALUE(entry)$<br />
$CMS_END_FOR$
(Achtung, den Code habe ich so hingeschrieben, bestimmt fehlt irgendwo eine Klammer)
Code ist fรผr FirstSpirit ab v4, unter v3.1 war die Syntax etwas anders.
[EDIT]
Noch paar Hinweise: Am besten, man beschrรคnkt das Sammeln von Log-Meldungen auf die Vorschau. Ansonsten sollte man nach der Ausgabe die Liste noch zurรผcksetzen (#global.resetLogs).
Fรผr "#global.collectLogs" sollten ab 4.1 statt der Zahlen auch "null" fรผr "aus" und die Namen des Log-Levels ("WARN", "ERROR", etc.) funktionieren.
Es werden รผbrigens immer auch die Meldungen mit hรถherem Level eingesammelt, fรผr INFO also auch WARN und ERROR.

