2013-03-14 73 views
3

我試圖創建自己的異常,但遇到了一個問題...我自己的異常在Java中 - 找不到符號

class MyException extends Exception { 
    MyException (String w) { super (w); } 
}; 


public class RozkladLiczby{ 

    private int[] Array; 

    RozkladLiczby(int n) throws MyException { 

     try{ 
      Array = new int[n+2]; 
     } 
     catch(OutOfMemoryException ex){ 
      throw new MyException ("Not enough memory"); 
     } 
    } 
} 

編譯器說,它無法在抓查找符號。

RozkladLiczby.java:16: error: cannot find symbol 
    catch(OutOfMemoryException ex){ 
     ^


symbol: class OutOfMemoryException 
    location: class RozkladLiczby 
1 error 
+4

請發佈完整的錯誤 – thegrinner 2013-03-14 17:09:20

回答

5

這是因爲在Java中沒有OutOfMemoryException;有OutOfMemoryError。如果沒有記憶,那你能做什麼?沒有內存可以創建新的異常。這就是爲什麼它是Error而不是Exception

0

OutOfMemoryException: - 如果OutOfMemoryException異常是是一個例外延長MyException您的自定義異常會被拋出,因爲您的自定義異常擴展Exception類有沒有機會,您的自定義異常將被捕獲在您的try {} catch(){}塊