在学习设计规约的时候,发现java异常的划分问题,查阅资料后
java 异常派生于Throwable类
划分为 Error 和 Exception
其中Exception 又可划分为Runtime Exception 和 IOException
Error 类描述java运行时的系统内部错误和资源耗尽错误,我们程序员无能为力也管不着
Runtime Exception类 ,比如数组越界等 ,是一些可以在编程阶段避免的错误,更简单地说就是你的问题。
IOException类 ,比如试图打开不存在的文件,是一些检查也避免不了的错误(在检查完之后文件可能就被删除,不存在了),这个时候就需要在编程的时候做检查。throws FileNotFoundException
为什么不应该有throws ArrayIndexOutOfBoundsException呢
因为数组越界可以通过代码避免,而不是告诉用户可能会发生数组越界
那什么是检查异常,什么是非检查异常呢
检查异常:我理解为存在异常可能的代码,存在检查异常的情况,如文件不存在这样的异常,它是由IOException类包含的
非检查异常:Error 在我们控制之外,自然用不上检查。
Runtime Exception类 这类异常我们是可以避免的,如数组访问越界,空指针,完全可以修改代码而不是检查异常的发生。