java 500错误页面模板_模板详细错误
§错误处理 Finding Issue
jetbrick-template 提供了强大的错误定位功能,你再也不用担心找不到错误原因了。
§1. 语法错误 Syntax Error
错误的模板示例:
#for (user: userlist)
${for.index}${user.name}${user.vip ? "vip", "normal"}
#end
错误提示包括了:错误所在的行号和列号,错误模板路径,错误原因等
jetbrick.template.parser.SyntaxException: mismatched input ',' expecting {'[', '?', ':', '.', '===', '!==', '==', '!=', '>', '=', '<=', '&&', '||', '+', '-', '*', '/', '%', '&', '|', '^', '<>', '>>>', 'instanceof'}
template: /samples/syntax-error-test.jetx: 5,28
-------------------------------------------------------------------------------
3:
${for.index}
4:
${user.name}
5:
${user.vip ? "vip", "normal"}
^ -- here
6:
7: #end
-------------------------------------------------------------------------------
at jetbrick.template.parser.AstBuilder$AstErrorListener.syntaxError(AstBuilder.java:77)
at org.antlr.v4.runtime.ProxyErrorListener.syntaxError(ProxyErrorListener.java:67)
at org.antlr.v4.runtime.Parser.notifyErrorListeners(Parser.java:561)
at org.antlr.v4.runtime.DefaultErrorStrategy.reportInputMismatch(DefaultErrorStrategy.java:327)
at org.antlr.v4.runtime.DefaultErrorStrategy.reportError(DefaultErrorStrategy.java:150)
at jetbrick.template.runtime.parser.grammer.JetTemplateParser.expression(JetTemplateParser.java:2309)
at jetbrick.template.runtime.parser.grammer.JetTemplateParser.expression(JetTemplateParser.java:2235)
at jetbrick.template.runtime.parser.grammer.JetTemplateParser.value(JetTemplateParser.java:313)
at jetbrick.template.runtime.parser.grammer.JetTemplateParser.block(JetTemplateParser.java:188)
at jetbrick.template.runtime.parser.grammer.JetTemplateParser.directive_for(JetTemplateParser.java:1027)
at jetbrick.template.runtime.parser.grammer.JetTemplateParser.directive(JetTemplateParser.java:427)
at jetbrick.template.runtime.parser.grammer.JetTemplateParser.block(JetTemplateParser.java:219)
at jetbrick.template.runtime.parser.grammer.JetTemplateParser.template(JetTemplateParser.java:117)
at jetbrick.template.parser.AstBuilder.create(AstBuilder.java:49)
at jetbrick.template.JetTemplateImpl.rebuildAstNodeAndConfig(JetTemplateImpl.java:111)
at jetbrick.template.JetTemplateImpl.reload(JetTemplateImpl.java:82)
at jetbrick.template.JetEngineImpl.getTemplate(JetEngineImpl.java:91)
§2. 运行期错误 Runtime Error
如果在模板运行期间发生错误,那么就可以得到类似下面的错误 Java Exception Stack。
模板示例:
#for (user: userlist)
${for.index}${user.name}${user.vip ? "vip" : "normal"}
#end
错误提示包括了:错误所在的行号和列号,错误模板路径,错误原因等
jetbrick.template.runtime.InterpretException: property get error: vip
template: /samples/runtime-error-test.jetx: 5, 16
-------------------------------------------------------------------------------
3:
${for.index}
4:
${user.name}
5:
${user.vip ? "vip" : "normal"}
^ -- here
6:
7: #end
-------------------------------------------------------------------------------
at jetbrick.template.parser.ast.AstInvokeField.doInvokeGetter(AstInvokeField.java:76)
at jetbrick.template.parser.ast.AstInvokeField.execute(AstInvokeField.java:51)
at jetbrick.template.parser.ast.AstValue.execute(AstValue.java:36)
at jetbrick.template.parser.ast.AstStatementList.execute(AstStatementList.java:182)
at jetbrick.template.parser.ast.AstDirectiveFor.execute(AstDirectiveFor.java:59)
at jetbrick.template.parser.ast.AstStatementList.execute(AstStatementList.java:182)
at jetbrick.template.parser.ast.AstTemplate.execute(AstTemplate.java:37)
at jetbrick.template.JetTemplateImpl.doInterpret(JetTemplateImpl.java:154)
at jetbrick.template.JetTemplateImpl.render(JetTemplateImpl.java:139)
Caused by: java.lang.RuntimeException: java.lang.UnsupportedOperationException
at jetbrick.util.ExceptionUtils.unchecked(ExceptionUtils.java:33)
at jetbrick.util.ExceptionUtils.unchecked(ExceptionUtils.java:31)
at jetbrick.bean.MethodInfo.invoke(MethodInfo.java:194)
at jetbrick.bean.PropertyInfo.get(PropertyInfo.java:111)
at jetbrick.template.parser.ast.AstInvokeField.doInvokeGetter(AstInvokeField.java:70)
... 10 more
Caused by: java.lang.UnsupportedOperationException
at jetbrick.demo.Model.getVip(Model.java:38)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at jetbrick.bean.MethodInfo.invoke(MethodInfo.java:192)
... 12 more
根据 root cause,我们可以看到是 user.vip 这个属性调用,抛出了 UnsupportedOperationException。
java 500错误页面模板_模板详细错误相关推荐
- 西门子精简触摸屏编译出现内部错误,但没有详细错误信息的处理对策
西门子精简触摸屏编译出现内部错误,但没有详细错误信息的处理对策 如果项目在编译过程中报错,但是没有具体的报错信息,或者显示未知错误.我们可以尝试对项目做"软件–全部重建"操作.如下 ...
- 无法读取内存属于错误吗_索佳全站仪错误信息讲解
介绍操作仪器过程中发生错误时给出的提示信息及其含义,如果同一错误信息不断出现或者出现下列之外的错误信息,请与索佳技术服务中心联系. 附属文件错误 ( Attached file err) 所选文件扩 ...
- java 获取400的错误信息_获取400错误的请求Spring RestTemplate POST
我想使用POST方法使用Spring Rest web服务.我无法在客户端(网站)访问POJO文件,因此必须在客户端使用JSON并在Web服务中使用POJO.下面是我的代码:获取400错误的请求Spr ...
- iis php网站500错误原因_因为曾经错误安装过PHP5.2而导致IIS7无法正常工作,显示500错误提示,大家帮忙看看!...
我的系统是VISTA,使用自带的IIS7,对ASP网页一直浏览正常.最近因自己心血来潮错误安装了一次PHP5.2.主要操作是: 1.下载的是自动安装的PHP5.2程序,自动选ISAPI按钮安装: 2. ...
- java pattern堆栈溢出_堆栈溢出错误与正则表达式进行解析
我知道有关于正则表达式和长字符串的堆栈溢出错误的一些帖子,但它们没有帮助我,也从不关心我的解析问题类型. 我只是试图从数学函数中找到括号中的字符串,例如 funktionsstring =SIN(3. ...
- java打开文件出错_打开文件错误太多,java.io.FileNotFoundException
在我的程序中,我有循环扫描一堆文件并读取其内容.问题发生在大约1500个文件的迭代中,似乎无法再现(或理解(由我)) 问题: java.io.FileNotFoundException: /path/ ...
- python编制应用程序错误怎么办_应用程序错误怎么办
展开全部 关于内存62616964757a686964616fe78988e69d8331333234313966不能read,written的解决方案 这种情况偶尔出现,没什么关系,不用管他.点击' ...
- java程序员发展_超详细的Java程序员职业发展路径,值得深思!
在国内IT行业招聘中,大量的招聘需求都是和Java相关,且比例还在上升.巨大的人才缺口直接导致各企业纷纷以高薪聘请Java人才.那么,Java工程师的职业发展路径是什么样的?小白入门Java后,成长路 ...
- java stack (null -1)_关于单链表实现的一个stack的问题
背景:菜鸟一枚,想补补基础.最近在看算法 ,1.3.26有一道题是:编写一个方法remove()接受一条链表和一个字符串key作为参数,删除链表中所有的item域为key的节点. 上代码: publi ...
- java tomcat 404配置_在Tomcat中配置404自定义错误页面详解
一直使用tomcat,今天想到一个问题,自定义404错误页面, 为了获得很好的用户感受,是不应当向用户暴露404这样的页面的, 问题的出发点是我在Struts2中定义错误页面, 在Struts2中是这 ...
最新文章
- Android 将ARGB图片转换为灰度图
- Xilinx---vivado系列
- android edittext email,Android上EditText上的电子邮件地址验证
- 计算机房防火要求,信息机房如何进行防火设计
- unc 隐藏共享文件夹_(原创)UNC路径的访问条件
- linux服务器非root用户安装Anaconda,并配置tensorflow/pytorch
- hiveserver2启动不起来_汽车一键启动除了点火,还有这些功能!车主:现在才明白...
- PowerLinux 服务器上安装 Oracle (详细步骤)
- web前端----------网易云音乐播放器简单的实现(素材自行下载)
- C 语言编码规范(MISRA-C-:2004)
- 在线考试小程序版手机微信考试软件,微信小程序考试系统出考试题小程序,考试答题微信小程序
- AI从零开始之我们为什么要为了那个虚无缥缈的f而奋斗
- chrome浏览器完整保存整个网页 可离线访问
- 打开conda环境报错:UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x9a in position 317: illegal multibyt
- 中值定理5-泰勒中值定理
- java 奇数trun_N26-博客作业-week15
- 【多益网络校招提前批】22届的同学可以冲啦
- cli sti cld std
- android开发中遇到的问题汇总
- app下载统计 php,如何统计app在各个渠道的下载量?