一、异样
Throwable是所有谬误和异样的超类
--Error--重大问题,不须要解决
--Exception--RuntimeException 在编译期不查看的,呈现问题再回来批改
--Exception--非RuntimeException 在编译期就必须解决,不然编译不通过。
二、JVM的默认解决计划
默认解决计划会在程序出现异常的中央间接完结。
三、异样解决之try-catch
两种异样解决计划:try--catch;throws;
3.1 try catch
格局:
try{须要解决异样的语句//如果这里呈现了xx异样,就会在堆中new xx();如果与catch中的异样类匹配则执行上面的语句}catch(异样类 对象){匹配这个异样类后,会执行的语句}
输入了catch前面的执行语句,且执行了“完结”
四、Throwable类
Throwable是所有异样的祖宗类,因而所有异样都能够调用他外面的办法。
- e.getMessage()输入了出现异常的起因
- e.toString输入了异样起因+异样类名
- e.printStackTrace()输入了异样起因+异样类名+异样呈现的地位
五、运行时异样和编译时异样的区别
运行时异样:非受检异样,编译时不会报错,是runtimeException的子类
编译时异样:受检异样,必须解决,不然编译不胜利,是Exception的子类
运行时异样:
编译时异样:
parseException
解决方案:
红线是说他这里有可能出错。
六、异样解决之throws
例:
throws只是抛出异样,并且找到异样就完结程序。不会持续往后执行。
要想继续执行还是须要try catch。
意思就是在办法定义时抛出后,谁调用这个办法,谁就用try catch异样。
七、自定义异样
留神继承自Exception,是编译时异样。
定义一个无参结构和一个有参结构,且有参结构里继承父类
throw xxException//这里用的是throw 不是throws
而后在用了这个自定义异样的办法名后throws xxException
应用这个带自定义异样的办法
控制台的输入:异样名称+异样地位(没有异样起因)
异样起因须要在throw new xxException("异样起因");这里退出
控制台的输入:异样起因+异样名称+异样地位
八、throw和throws的区别
最次要的就是
throw 在办法体外面,肯定会抛出异样throws 在办法名前面,只有出现异常了才会抛出异样。