检查性异常
最具代表的是用户错误问题引起的异常,是我们无法预见的,编译时不能被忽略;
运行时异常:可以在编译时被忽略
错误ERRoR:不是异常,脱离控制,编译也检查不到的
Java定义了一个基类java.lang.Throwable 作为所有异常的超类
分为两大类:错误Error和异常Exception
Error和Exception的区别:
抛出异常
捕获异常
异常处理的五个关键字
try , catch ,finally ,throw,throws
try ...catch ... finally 捕获多个异常,从小到大
try{//监控区域
}catch(Exception e){ //catch(想要捕获的异常类型)捕获异常
System.out.print("异常,除数不能为0");
}finally{//最后一定会输出 处理善后 可选,用于资源的关闭
System.out.print("finally");
}
throw 手动抛出异常对象
class Number{
int num;
public void step(){
if(num<0){
throw new RuntimeException("数据错误!");
}
}
}
throws
”throws +异常类型“ 在方法声明处,指明方法执行时,可能会抛出的异常类型
此方式只是将异常抛给了方法的调用者,并未真正处理掉异常
class Person{
public void resgit() throws Exception{
System.out.print("输出");
}
}
处理运行时异常时,采用逻辑合理规避同时辅助使用try-catch 处理
在多个catch块后面,可以加一个catch(Exception)来处理可能会被遗漏的异常
尽量去处理异常,而不是简单的调用printStackTrace去打印输出
对于资源读写,添加finally语句块去释放资源
原文:https://www.cnblogs.com/codehan/p/14614336.html