我正在尝试创建自己的异常,但遇到了问题...
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" );
}
}
}
编译器说它无法在catch中找到符号。
RozkladLiczby.java:16: error: cannot find symbol
catch(OutOfMemoryException ex){
^
symbol: class OutOfMemoryException
location: class RozkladLiczby
1 error
答案 0 :(得分:5)
那是因为Java中没有OutOfMemoryException
;有OutOfMemoryError
。如果没有记忆,那么你能做什么?创建新的异常没有内存。这就是为什么它是Error
而不是Exception
。
答案 1 :(得分:0)
没有 OutOfMemoryException ,但有OutOfMemoryError
答案 2 :(得分:0)
OutOfMemoryException
: - 如果OutOfMemoryException是一个扩展MyException的Exception,那么你的自定义异常就会被抛出,因为你的自定义异常正在扩展Exception类,你的自定义异常不会被你的try {}抓住catch(){}阻止