- 执行中很不正常的情况称为异常
- 语法错误,逻辑错误不算异常
Error:java虚拟机无法解决的严重问题,JVM系统内部错误.资源耗尽
Throwable
Error
- Exception
- IOException
- EOFException
- FileNotFoundException
- UnknownHostException
- EOFException
- ClassNotFoundException
- CloneNotSupportedException
- RuntimeException()
- ArrayIndexOutofBoundsException
- NullPointerException
- ClasscastException
- NumberFormatException
- InputMismatchexception
- ArrayIndexOutofBoundsException
- IOException
红色:checked受检异常(编译时异常)
蓝色:unchecked非受检异常(运行时异常)
- 异常处理:try-catch-finally
try{
// 异常代码
}catch(异常类型 变量名){
// 处理异常
}finally{
// 一定会执行的代码
}
- try里面写异常信息,出现了异常就会产生对应的异常类对象,去catch里面找异常,处理完成就跳出try,catch语句继续执行后面代码.
- catch异常类型,父类的写在下面
- getMessage()返回异常信息, printStacktrace();
- finally里面的语句一定会执行,try出现异常就会执行finally
- Exception:分为未检查异常(RuntimeException)和已检查异常(非RuntimeException)。
- try,catch语句将编译时出现的异常延迟到运行时出现
-
throws+异常类型
写在方法声明处,方法出现异常,就会抛出异常类型
- 满足throws异常类型就会抛出,后面代码就不会执行
- 子类重写抛出的异常类型不能比父类的方法的异常的类型大
- 父类没有throws处理异常,子类重写的方法也不能throws,子类重写有异常必须使用try-catch-finally处理
- 手动抛出异常类 : throw new 异常类();
自定义异常类