当前位置: 代码迷 >> J2SE >> 为什么发生错误后程序终止运行
  详细解决方案

为什么发生错误后程序终止运行

热度:95   发布时间:2016-04-24 13:03:51.0
为什么发生异常后程序终止运行
Java code
try {    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");    Date fileDate = sdf.parse("20080528");} catch (ParseException e) {    // TODO Auto-generated catch block    e.printStackTrace();}


Java code
    public int[] executeMUpDateBatch(String sKind){        int[] result = null;        String TableName = getConfig(sKind);        if(upDates==null)            return result;        try {            Connection conn = DATABASE.connPool.getConnection();            PreparedStatement ps = conn.prepareStatement(upMSql);            for(int i=0;i<upDates.size();i++){                ps.setString(1, upDates.get(i).get(0));                ps.setString(2, upDates.get(i).get(1));                ps.setString(3, upDates.get(i).get(2));                ps.setString(4, upDates.get(i).get(3));                ps.setString(5, upDates.get(i).get(4));                ps.setString(6, upDates.get(i).get(5));                ps.setString(7, upDates.get(i).get(6));                ps.setString(8, upDates.get(i).get(7));                ps.setString(9, upDates.get(i).get(8));                ps.setString(10, upDates.get(i).get(9));                ps.addBatch();//                for(int j=1;j<upDates.get(i).size();j++){//                    ps.setString(j, upDates.get(i).get(j-1));//                }            }            result = ps.executeBatch();            DATABASE.connPool.returnConnection(conn);            return result;        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }


为什么我的程序在抛出以上两种异常后终止,如果我希望它继续运行该怎么处理。

------解决方案--------------------
都到程序末尾了,下面没有代码怎么执行?
------解决方案--------------------
加个finally,里面写你要继续执行的代码,就可以了
------解决方案--------------------
try {
// ...可能抛出异常的部分
} catch(Exception e) {
// ...处理异常
}

// ...异常处理完了,继续运行


------解决方案--------------------
异常抛出后,就不能返回原来的位置了
你还想处理什么就在处理异常的后面处理吧
------解决方案--------------------
有个办法,你用循环把try catch块包围起来,然后catch中不要执行e.printStackTrace();
,就一个空体就OK
------解决方案--------------------
抛出异常后要返回原来的位置也是可以的。把try catch放到一个循环里。
boolean condition = true;
while(condition) {
try {
...
condition = false; //如果没有异常就跳出循环。
}
catch(Exception e) {
e.printStackTrace();
} //有异常就回到原点继续。
}
------解决方案--------------------
去看think in java吧
------解决方案--------------------
这个方法比较多
可以在捕获异常的同时调用新的方法
可以用finally类继续调用其他方法
可以捕获到异常不进行处理继续执行其他代码。

------解决方案--------------------
我就不明白了,为什么遇到问题了都让人家去看书呢! 有些是要去看书,但是有些问题是看完书后不理解的才拿出来问问!你知道就告诉人家嘛,多打几个字助人为乐呀,况且你也不是什么都会!
------解决方案--------------------
探讨
我就不明白了,为什么遇到问题了都让人家去看书呢! 有些是要去看书,但是有些问题是看完书后不理解的才拿出来问问!你知道就告诉人家嘛,多打几个字助人为乐呀,况且你也不是什么都会!
  相关解决方案