Throwable 是 error 和 exception 的父类
- Error 错误:由JVM产生抛出的
- Exception 异常:还没有运行就被检测到了 (主要)
异常分为运行时(RuntimeException)和非运行时(ReflectiveOperationException)
◼️ 运行时异常:
运行时异常也叫做非受检异常。是程序未检测出来的异常,这种异常通常是逻辑错误所引起的。
例如:
逻辑产生的异常只有在运行时才能被检测到。
◼️ 非运行时异常:
非运行异常也叫做受检异常。从语法角度上必须解决的异常,如果不处理,那么不能被编译通过。
异常的解决方法
◻️ 抛出异常
throws: 向外抛出异常,让调用者去解决这个异常
调用者可以选择使用try-catch-finally去解决问题,或者也直接抛出
💡 throws可以抛出多个异常,但是也可以直接抛出一个大异常 Exception
自定义异常关键字 : throw、throws
◻️ 解决异常
- try :尝试执行。如果执行成功,那么就不会执行catch当中的代码;如果执行失败,那么就会执行catch当中的代码
- try-catch :如果我们try代码块当中的代码执行失败,不会影响后边的代码执行
💡 可以写多个catch()来代表多个异常,但是也可以写处理一个大异常Exception
- catch(Exception e) : ()写的是我们当前所要抛出异常的类型,如果不知道代码要报出什么异常,直接写Exception
- finally : try-catch代码块当中一定要执行的代码