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