Uncaught Latte\CompileException

jconnor34
Member | 2
+
0
-

I wrap the renderToString method in a try/catch block but still get a fatal uncaught exception which makes my script fail. I may be doing something incorrect. Can you give me some guidance.

This issue occurred when a incorrect tag was used in the Latte template. When the following code was used it gave a fatal error the ended the script:

//----CODE------
try {
$latte->setLoader(new Latte\Loaders\StringLoader);
$body = $latte->renderToString($stringtolatte,$stacknew);
} catch(Exception $e) {
Logit(" Error when rendering Latte: Error::".$e->getMessage());
}
//----END OF CODE------

-----------SCRIPT FATAL ERROR IN LOG--------------
PHP Fatal error: Uncaught Latte\CompileException: Unexpected tag {assign} (on line 77 at column 13) in /home/latte/vendor/latte/latte/src/Latte/Compiler/TemplateParser.php:322
Stack trace:
#0 /home/latte/vendor/latte/latte/src/Latte/Compiler/TemplateParser.php(178): Latte\Compiler\TemplateParser->getTagParser()
#1 /home/latte/vendor/latte/latte/src/Latte/Compiler/TemplateParser.php(114): Latte\Compiler\TemplateParser->parseLatteStatement()
#2 /home/latte/vendor/latte/latte/src/Latte/Compiler/TemplateParserHtml.php(57): Latte\Compiler\TemplateParser->inTextResolve()
#3 /home/latte/vendor/latte/latte/src/Latte/Compiler/TemplateParser.php(92): Latte\Compiler\TemplateParserHtml->inTextResolve()
#4 /home/latte/vendor/latte/latte/src/Latte/Compiler/TemplateParser.php(195): Latte\Compiler\TemplateParser->parseFragment()
#5 /home/latte/vendor/latte/latte/src/Latte/Compiler/TemplateParser.php(114): Latte\Compiler\TemplateParser->parseLatteStatement()
#6 /home/latte/vendor/latte/latte/src/Latte/Compiler/TemplateParserHtml.php(57): Latte\Compiler\TemplateParser->inTextResolve()
#7 /home/latte/vendor/latte/latte/src/Latte/Compiler/TemplateParser.php(92): Latte\Compiler\TemplateParserHtml->inTextResolve()
#8 /home/latte/vendor/latte/latte/src/Latte/Compiler/TemplateParserHtml.php(130): Latte\Compiler\TemplateParser->parseFragment()
#9 /home/latte/vendor/latte/latte/src/Latte/Compiler/TemplateParserHtml.php(83): Latte\Compiler\TemplateParserHtml->parseElement()
#10 /home/latte/vendor/latte/latte/src/Latte/Compiler/TemplateParserHtml.php(54): Latte\Compiler\TemplateParserHtml->parseTag()
#11 /home/latte/vendor/latte/latte/src/Latte/Compiler/TemplateParser.php(92): Latte\Compiler\TemplateParserHtml->inTextResolve()
#12 /home/latte/vendor/latte/latte/src/Latte/Compiler/TemplateParserHtml.php(130): Latte\Compiler\TemplateParser->parseFragment()
#13 /home/latte/vendor/latte/latte/src/Latte/Compiler/TemplateParserHtml.php(83): Latte\Compiler\TemplateParserHtml->parseElement()
#14 /home/latte/vendor/latte/latte/src/Latte/Compiler/TemplateParserHtml.php(54): Latte\Compiler\TemplateParserHtml->parseTag()
#15 /home/latte/vendor/latte/latte/src/Latte/Compiler/TemplateParser.php(92): Latte\Compiler\TemplateParserHtml->inTextResolve()
#16 /home/latte/vendor/latte/latte/src/Latte/Compiler/TemplateParserHtml.php(130): Latte\Compiler\TemplateParser->parseFragment()
#17 /home/latte/vendor/latte/latte/src/Latte/Compiler/TemplateParserHtml.php(83): Latte\Compiler\TemplateParserHtml->parseElement()
#18 /home/latte/vendor/latte/latte/src/Latte/Compiler/TemplateParserHtml.php(54): Latte\Compiler\TemplateParserHtml->parseTag()
#19 /home/latte/vendor/latte/latte/src/Latte/Compiler/TemplateParser.php(92): Latte\Compiler\TemplateParserHtml->inTextResolve()
#20 /home/latte/vendor/latte/latte/src/Latte/Compiler/TemplateParser.php(73): Latte\Compiler\TemplateParser->parseFragment()
#21 /home/latte/vendor/latte/latte/src/Latte/Engine.php(161): Latte\Compiler\TemplateParser->parse()
#22 /home/latte/vendor/latte/latte/src/Latte/Engine.php(125): Latte\Engine->parse()
#23 /home/latte/vendor/latte/latte/src/Latte/Engine.php(255): Latte\Engine->compile()
#24 /home/latte/vendor/latte/latte/src/Latte/Engine.php(99): Latte\Engine->loadTemplate()
#25 /home/latte/vendor/latte/latte/src/Latte/Engine.php(84): Latte\Engine->createTemplate()
#26 /home/robotagentz/agent/functions/email.php(119): Latte\Engine->renderToString()
#27 /home/robotagentz/agent/razagent.php(191): email()
#28 /home/robotagentz/agent/razagent.php(392): ProcessBlock()
#29 /home/robotagentz/agent/razagent.php(168): Process()
#30 {main}
thrown in /home/latte/vendor/latte/latte/src/Latte/Compiler/TemplateParser.php on line 322

Marek Bartoš
Nette Blogger | 1307
+
+2
-

https://www.php.net/…mporting.php

\Exception or use Exception is likely what you need.

jconnor34
Member | 2
+
0
-

Thank you! I did a use statement with an “as” because I already had another Exceptions use statement.

use Latte\Exception as LatteException;