(Neuling alert)Wie kann ich Yesod-Fehlermeldungen effektiv lesen?
Da die folgende Fehlermeldung, was ist der schnellste Weg zur Quelle des Fehlers zu erhalten:
08/Jul/2016:11:39:01 +0530 [Error#yesod-core] expected EPlain but got Nothing for: DerefBranch (DerefIdent (Ident "show")) (DerefString "abcdef") @(yesod_3MCr4WfhviiELXmo3fAaXL:Yesod.Core.Class.Yesod ./Yesod/Core/Class/Yesod.hs:625:5)
GET/
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Status: 500 Internal Server Error 0.054158s
Handler/Home.hs:38:11:
No instance for (Text.Julius.ToJavascript String)
arising from a use of ‘Text.Julius.toJavascript’
In the second argument of ‘(GHC.Base..)’, namely
‘Text.Julius.toJavascript’
In the second argument of ‘(GHC.Base..)’, namely
‘(Text.Julius.unJavascript GHC.Base.. Text.Julius.toJavascript)’
In the expression:
Text.Shakespeare.EPlain
GHC.Base..
(Text.Julius.unJavascript GHC.Base.. Text.Julius.toJavascript)
Build failure, pausing...
Ich bin mit einer einfachen rüsteten Baustelle arbeiten (kein DB) und absichtlich mit homepage.julius
durcheinander gebracht. In diesem speziellen Fall weiß ich genau, was der Fehler ist, aber wie kann man nur durch das Betrachten der Fehlermeldung wissen?
Sie haben Recht. Das habe ich versucht. Meine Frage ist jedoch anders. Betrachtet man die Fehlermeldung, wie lernt man die genaue Zeile in der julius/cassius/hamlet Vorlage kennen, die den Fehler verursacht? –
Es gibt eine Option zum Speichern von Vorlagen-Hakerk-Spleißen während der Kompilierung, was etwas ist. Aber darüber hinaus wird die Quelle des Fehlers immer die Zeile in Ihrem Code sein, in der Sie sie aufgerufen haben. Aus diesem Grund benutze ich keine Vorlagen persönlich. –
Es löst diese Frage nicht, aber Template Haskell kann Zeilen-Pragmas ausgeben, um nützlichere Fehlermeldungen zu erzeugen. Ich denke nur nicht, dass dieses Vorlagensystem damit beschäftigt ist. – glguy