首页 > 解决方案 > 不试就抓住

问题描述

当我在 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();  
    } 
      }

}
}

所以,你能帮我吗?并感谢你们所有人。

标签: javatry-catch

解决方案


很简单:你的 finally 块中的捕获不是在尝试之后出现的!

没关系,在finally之前有一个尝试!finally 关键字“结束”属于初始 try 语句的 catch 块列表。因此,该 finally 块中的 catch 是一个“孤儿”,它缺少先前的尝试。


推荐阅读