java中Error和Exception用法上有什么区别

顺便提一句, 和Exception 相对应的,还有Error,Error(错误)表示系统级的错误和程序不必处理的异常,是JRE(java运行环境)的内部错误或者硬件问题,比如,另外某一处地方的bug引起的内存溢出,内存资源不足等,OutOfMemoryError,对这类错误,程序基本无能为力,比如下例中,catch不被执行(其实虚拟机是有能力执行的,否则finally为什么被执行?但就是这原则,意味着,程序员们不要试图在catch中做什么,你做了,我也不执行,因为是Error,而不是Exception)只能退出。
马克- to-win:马克 java社区:防盗版实名手机尾号: 73203。
例:

public class Test {
/* maxMemory将返回java虚拟机所能返回的最大可用内存。0.92可以, 0.93就报错 */
    int size_Make_to_win = (int) (Runtime.getRuntime().maxMemory() * 0.93);
    public void allo() {
        byte[] data1 = new byte[size_Make_to_win];
    }
    public static void main(String[] args) {
        Test t = new Test();
        try{
        t.allo();
        }
        catch(Exception e)
        {
            System.out.println(e+"qqq");
        }
        finally
        {
            System.out.println("in finally");
        }

    }
}

输出结果:

in finally
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at Test.allo(Test.java:5)
    at Test.main(Test.java:10)