学习java异常理解编译期异常

  Java有Exception类

    编译期异常,进行编译(写代码)Java程序出现的问题。

    看图吧

    

    为何IDE会报红色波浪线

    parse方法嘛,它自身就可能会有异常。(有可能转换错误)

    再看图

    

    看,在main方法签名后面加上了throws ParseException

    IDE中就不会有红色波浪线了。

    

    个人理解是因为parse方法内部实现的时候,有要抛出异常的代码。

    所以,需要对这个方法,进行异常处理。

    在这个方法的签名后面加上了throws ParseException,是异常处理的一种。

    但是,parse参数中,输入了格式错误的字符串,还是会有新情况的,那就是中断处理。

    看图吧

    

    

    在代码中,参数的值变成了"1999-0909",运行程序就出现中断,出现Java.text.ParseException,和签名中异常是一样的。

    异常处理的方式,除了在签名中添加throws,另一种就是try/catch了    

        

    再理解这句话:(异常产生后程序员可以通过代码的方式纠正,使程序继续运行,是必须要处理的。java处理异常的方式是中断处理)

    这Java中的Exception

    在看异常,如果说Parse方法的API中有说,异常时parse方法的一部分,那么下面的异常是什么?

    看图吧

    

    

    能从代码看出来是,arr[3]索引超过了。

    java.lang.ArrayIndexOutOfBoundsException

    这也是异常,只不过是程序员编码的bug。导致jvm的中断处理了。

    当然,使用两种处理方式是可以处理异常的。

    再看异常,直接上图

    

    

    这次异常是java.lang.OutofMemoryError

    看代码还是程序员编码的bug,只不过是很初级的错误。

    从parse的内部实现的异常,再者是数组索引超过,最后是开辟数组内存空间过大

    虽然这次是OutOfMemoryError是Error的命名,但也是可以使用两种处理方式是可以处理异常的

    

    

原文地址:https://www.cnblogs.com/158-186/p/14710766.html