日期:2014-05-20  浏览次数:20741 次

再问一个简单的java异常问题
各位大虾:

我的A.java代码如下:
            import   com.abc.*;
            ...others
            try
            {
                ...
                myfunc(it);
            }catch(Exception   e)
            {
                  do   something   here  
            }

        其中myfunc()方法是com.abc.Test类的一个方法:
          myfunc(int   i)
        {
              try
            {
            }catch(IOException   ex)
            {
                System.out.println( "myfunc   is   wrong ");
            }

          }
        请问:如果在A.java里执行myfunc()方法时出现异常,A.java能捕获吗?如何做?
        谢谢

------解决方案--------------------
不能catch要想catch住必须在 myfunc(int i)
中重新throw
------解决方案--------------------
这样做:
myfunc(int i) throws IOException
{

}
或:
myfunc(int i) throws IOException
{
try
{
}catch(IOException ex)
{
System.out.println( "myfunc is wrong ");
throw ex;
}
}

------解决方案--------------------
楼上正解
------解决方案--------------------
myfunc 中throws出去A.java就能捕获
------解决方案--------------------
查看下是否真的抛出了这个异常
------解决方案--------------------
在myfunc中已经捕获了
修改:
myfunc(int i) throws Exception
{
try
{
}catch(IOException ex)
{
System.out.println( "myfunc is wrong ");
throw new Exception();
}

}

------解决方案--------------------
只是需要将 Exception 重新抛出而已.
------解决方案--------------------
如果异常需要在catch后重新被throw出去,那你又何必catch呢?