两种实现有什么不同吗
1. public void fun() throws Exception{}
2. public void fun()
{
try
{
...
}
catch (Exception e)
{
}
}

解决方案 »

  1.   

    我感觉第2种在做外部调用时,代码比较干净。可是JAVA提供第1种用法,肯定有他的优点,这一点我不清楚,大家知道吗?请赐教
      

  2.   

    第一种可以把exception全部抛出来,然后在其他地方集中处理,在项目中就不需要在每个可能抛错的地方都进行处理..
      

  3.   

    第一种在调用的时候要try.catch
    第二种不用
      

  4.   

    第一种做法是明确让调用者处理异常,如果此调用没有放在try/catch块中而且调用者没有声明抛出异常,则编译器会报错. 但第一种做法本身还是可以处理异常的. 如下例:
    public void fun() throws Exception{
      boolean isResourceAllocated = false;
      try {
        // allocate resource
        isResourceAllocated = true;
        ...
      } catch(Exception ex) {
        if(isResourceAllocated) 
          // deallocate resource here
        // check ex if more processing is necessary
        throw ex; // for caller to process
      }
    }
      

  5.   

    第一种情况是方法不做出错处理,而是把异常抛给调用这个方法的Method.由它进行处理.JAVA提供的第1种用法有其优点。举个例子,进行IO操作的时候,你调用的每个Method都会抛出IOException.你会发现你的Method只要调用过一次IO Method,就要进行异常处理。特别存在方法的重载,每个同名方法都要进行异常处理。如果用try...catch...,就会铺天盖地都是它.
    这个时候用第1种用法,在调用它的Method中用第2种用法处理异常.如果你想清楚知道异常抛出的地方,出错的情况,建议用第2种用法.