java中Error和Exception用法上有什么区别,Error是怎么回事?

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

例:

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");
        }

    }
}

更多内容请见原文,文章转载自:https://blog.csdn.net/qq_44639795/article/details/101302017

posted @ 2021-03-09 08:48  师徒行者  阅读(281)  评论(0编辑  收藏  举报