2009年11月2日 星期一

Exception 不見的情況

情況一:
lm.f()中丟出的exception, 被finally中的exception取代掉了

class VeryImportantException extends Exception {
  public String toString() { 
    return "A very important exception!"; 
  } 
} 

class HoHumException extends Exception { 
  public String toString() { 
    return "A trivial exception"; 
  } 
} 

public class LostMessage { 
  private static Test monitor = new Test(); 
  void f() throws VeryImportantException { 
    throw new VeryImportantException(); 
  } 
  void dispose() throws HoHumException { 
    throw new HoHumException(); 
  } 
  public static void main(String[] args) throws Exception { 
    LostMessage lm = new LostMessage(); 
    try { 
      lm.f(); 
    } finally { 
      lm.dispose(); 
    } 
  }
} 

情況二:
若在finally直接return

參考 : http://www.mindview.net/Books/TIJ/

沒有留言:

張貼留言