Throwable
Java异常情况为两种Error错误和Excepion异常
Error错误,指的是Java运行时的内部错误和资源耗尽错误,应用程序不会
抛出此类异常,一般情况会告知用户并自动结束程序,很少出现
Excepion,异常又分为编译时异常和运行时异常,编译时异常会在程序编写界面直接提示错误(如包找不到,语法错误等);运行时异常 会在代码运行的时候报错,常见有:
IndexOutOfBoundsException:索引越界异常
ArrayIndexOutOfBoundsException:数组越界异常
ArithmeticException:算数运算异常
IllegalArgumentException:非法参数异常
ClassCastException:类型转换异常
ClassNotFoundException:类未找到异常
NullPointerException:空指针异常
NumberFormatException:数据格式异常
FileNotFoundException:文件未找到异常
NoSuchElementException:没有这个元素异常(迭代器中到了末尾,还继续访问)
JVM的默认处理方案
如果程序出现了异常,我们又没有处理该异常,最终JVM会做默认处理
JVM会把异常的名称,原因,位置等信息显示在控制台上 然后程序停止执行
异常处理try…catch
执行流程
程序从try{}开始执行,当程序出现异常时,会自动生成一个异常类对象,该异常对象会被提交给java运行时系统,Java运行时系统会在接受到异常后,到catch中去寻找匹配的异常类,找到后进行异常处理,处理完毕程序可以接着往后边执行
自定义异常类
用户自定义异常都应该继承Exception基类,如果希望自定义Runtime异常,则应该继承RuntimeException基类,定义异常类时通常需要提供两个构造器,一个是无参数构造器,另一个是需要一个字符串参数的构造器,这个字符串作为该异常信息的描述信息(也就是异常对象的getMessage()方法返回的值)
throws
虽然我们可以通过try catch 来处理异常,但并不是任何情况我们都有异常处理的权限,又时候我们处理不累异常,因此Java为我们提供了throws的解决方案
格式:
public 方法名()throws 异常类名{}
throws和throw的区别