错误:Error是程序无法处理的,由JVM抛出的(底层抛出)
异常:Exception是程序语句问题,还没运行就会被检测
Thorwable:所有异常的父类
异常分为两类 —— 运行时(Runtime Exception) 和 非运行时(Reflective Operation Exception)
运行时异常(非受检异常):程序未检测出来的异常,通常是由逻辑错误引起的,只有在运行的时候才能被检测到
非运行时异常(受检异常):语法角度必须要解决的异常,如果不处理,则编译无法通过
异常的解决方法:1.抛出异常 2. 解决异常
抛出异常
解决异常
try{ } catch{ }
错误不能被以上两种方法解决
自定义异常 throw
throws 和 throw 的区别
throws:用来声明一个方法可能产生的所有异常,不做任何处理而是将异常向上传递,谁调用返回给谁。
用在方法声明后,跟着的是异常类名。
可以跟多个异常类名,用逗号隔开。
表示抛出异常,由该方法的调用者来处理。
throws表示异常的一种可能性,不代表一定会发生这些异常。
throw :用来抛出一个具体的异常类型
用在方法内,跟着一个异常对象名。
只能抛出一个异常对象名。
执行了throw一定会抛出某种异常