java - 不试就抓住
问题描述
当我在 cmd 中执行此 servlet 时遇到问题,它显示错误:'catch' without 'try' catch (XQException e) {
如果您在我的 servlet 中发现错误,我将不胜感激
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
try {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
ServletContext context = getServletContext();
XQDataSource ds = new SaxonXQDataSource();
XQConnection conn = ds.getConnection();
String xqueryRequest="for $t in doc('/WEB-
INF/theatre.xml')/theatres/theatre"+
"order by $t/nom"+
"return"+
"<theatres>"+
"<theatre>"+
"{$t/nom}"+
"{$t/adresse}"+
"</theatre>"+
"</theatres>";
InputStream xsl = (InputStream)(context.getResourceAsStream("/WEB-
INF/theatre.xsl"));
Source xslDoc3 = new StreamSource(xsl);
XQPreparedExpression exp = conn.prepareExpression(xqueryRequest);
XQResultSequence result = exp.executeQuery();
while (result.next()) {
out.println(result.getItemAsString(null));
}
StringWriter swr3 = new StringWriter();
out.println(swr3.toString());
out.close();
}
catch(Exception ex1){
ex1.printStackTrace();
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
finally{
catch (XQException e) {
e.printStackTrace();
}
}
}
}
所以,你能帮我吗?并感谢你们所有人。
解决方案
很简单:你的 finally 块中的捕获不是在尝试之后出现的!
没关系,在finally之前有一个尝试!finally 关键字“结束”属于初始 try 语句的 catch 块列表。因此,该 finally 块中的 catch 是一个“孤儿”,它缺少先前的尝试。
推荐阅读
- javascript - 在前端有效地验证嵌套的 JSON 模式/配置
- c# - 当我使用 Math.Round() 它总是返回下限
- swift - 为什么自定义类视图在第一次平移后不平移?
- lisp - Common LISP:制作你自己的联合函数
- ios - 在 React Native (IOS) 的 PowerPoint 应用程序中打开一个 .ppt 文件
- performance - 通过 Kingswaysoft 的大量数据缓慢且性能不佳的 SSIS
- javascript - 如何将异步信息添加到全局数组?
- c# - 从 sql 文件流将字节数组传回其原始文件
- javascript - Add multiple links to Javascript Iframe popup
- javascript - Orbit Controls 跟随鼠标而不点击three.js