String  command = "sh ftp_file.sh ";
System.out.println ("transfer shell=["+command+"]");
 Process proc = null;
try
{
    proc = Runtime.getRuntime().exec(command);
     proc.waitFor();
     proc.destroy();
}
 catch (Exception e) 
 {
    if(proc!=null)
         proc.destroy();
e.printStackTrace();
}
如果我的脚本在写的过程中出现了异常,也就是写入失败了.那么我的try..catch..语句能捕捉到这个异常么.
因为写入失败后,要把数据库回滚,还要在页面上说明失败的原因.应该怎么做?????高手指点

解决方案 »

  1.   

    catch (Exception e) 
         {
            if(proc!=null)
                 proc.destroy();
            e.printStackTrace();
            //事务处理
            throw new Exception(e.getMessage());//获取异常消息在抛出
        }
      

  2.   

    脚本出错应该无法用java代码的try...catch捕捉到。不过,你可以用
    1) int exitValue = process.exitValue(); //获知脚本运行最终的退出值。通常0为无错误。
    2) InputStream errorIn = process.getErrorStream(); //读取脚本运行错误信息。我推荐用第2种方法。具体出错的信息,在程序内需要分别识别。
    也就是说,不可能有通用的方法去处理出错的信息。
      

  3.   

    那你要及时的将出错信息从ErrorStream中获得