学习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的命名,但也是可以使用两种处理方式是可以处理异常的