• 执行中很不正常的情况称为异常
  • 语法错误,逻辑错误不算异常
  • Error:java虚拟机无法解决的严重问题,JVM系统内部错误.资源耗尽

    Throwable

  • Error

  • Exception
    • IOException
      • EOFException
      • FileNotFoundException
      • UnknownHostException
    • ClassNotFoundException
    • CloneNotSupportedException
    • RuntimeException()
      • ArrayIndexOutofBoundsException
      • NullPointerException
      • ClasscastException
      • NumberFormatException
      • InputMismatchexception

红色:checked受检异常(编译时异常)
蓝色:unchecked非受检异常(运行时异常)

  • 异常处理:try-catch-finally
  1. try{
  2. // 异常代码
  3. }catch(异常类型 变量名){
  4. // 处理异常
  5. }finally{
  6. // 一定会执行的代码
  7. }
  • try里面写异常信息,出现了异常就会产生对应的异常类对象,去catch里面找异常,处理完成就跳出try,catch语句继续执行后面代码.
  • catch异常类型,父类的写在下面
  • getMessage()返回异常信息, printStacktrace();
  • finally里面的语句一定会执行,try出现异常就会执行finally
  • Exception:分为未检查异常(RuntimeException)和已检查异常(非RuntimeException)。
  • try,catch语句将编译时出现的异常延迟到运行时出现
  • 运行时异常通常就不会处理

    throws+异常类型

  • 写在方法声明处,方法出现异常,就会抛出异常类型

  • 满足throws异常类型就会抛出,后面代码就不会执行
  • 子类重写抛出的异常类型不能比父类的方法的异常的类型大
  • 父类没有throws处理异常,子类重写的方法也不能throws,子类重写有异常必须使用try-catch-finally处理
  • 手动抛出异常类 : throw new 异常类();

    自定义异常类

  1. 继承Exception和RuntimeException类
  2. 提供全局变量serialVersionUID
  3. 提供重载的构造器

    throws 和 throw 区别:

    throws是异常处理的一种方式
    throw抛出异常类对象,是生成异常对象的过程