一、异样


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 在办法名前面,只有出现异常了才会抛出异样。