catch只是发生异常的时候才执行
如果你想任何操作都写入log文件,你应该在finally里面写。

解决方案 »

  1.   

    Query test = new Query(); 
    try{ 
    test(querystring); 

    catch(QueryException e) 

    将错误写入log文件。
    }
    finilly
    {
    写入log文件。}
      

  2.   

    你程序发生QueryException 这个异常了么?你的log文件写入过程没有问题么?原因比较多啊,把你的问题在整理一下,问题的提出不太好发现错误。谢谢(:(没事说这么多干嘛,惹人烦,哈哈哈哈啊哈哈哈哈)
      

  3.   

    try {
      Query query = new Query(queryString);
    }
    ...
      

  4.   

    不明白test(queryString)是什么意思,能编译得过吗?
      

  5.   

    我觉得: lonelyegg(独孤鸡蛋) 说得对,这个类的构造函数会抛出异常的,初始化放在try外面
    ,肯定就先出错了,就没法catch了 啊。
      

  6.   

    Query test = new Query(); 
    try{ 
    test(querystring); 

    catch(QueryException e) 

    将错误写入log文件。
    }
    finilly
    {
    写入log文件。}
    ------->
    import Query;
    Query test = new Query(); 
    try{ 
    test.Query(new string); //string类型参数

    catch(Exception e) 

    将错误写入log文件。
    }
    finilly //不管有没有捕获错误都会执行的东东
    {
    写入log文件。}
      

  7.   

    还是我上面说的问题啊,你的程序根本无法编译。Query test = new Query(); 这句话说明test是一个对象,如果要调用对象的方法肯定是test.method();test(queryString)肯定是错的。既然类定义中定义了Query类的构造函数是有一个参数的,那么肯定要Query test = new Query(queryString);不会还不明白吧?
      

  8.   

    我的queryString是指查询的字符串,我的代码如下,当时发贴时太极了,所以让大家误会了。编译没有问题,我的意思是当用户的查询的字符串不符合语法时,出错,我要在出错时,把错放入我的文件去,然后在jsp中显示这个文件。Query rdf_query = Query();
    try{
    rdf_query = new Query(queryString) ;
    }
    catch(QueryException  e)
    {
     instance1.write_nodata("There are some lexical errors in Query String.");
    return;
    }
    这个包是jena的用于RDF query.
      

  9.   

    楼主你的程序由一些错误:首先,因为public Query(java.lang.String s) 
    所以你的构造函数必须有String参数
    Query test = new Query(s); 其次,catch块里边写入日志的操作只有在抛出异常的情况下才会被执行,而你的try block又不是一定都抛出异常,只是有可能抛出而已
      

  10.   

    楼主,好好学一下java的语法基础吧。