Java基础相关7
java中的异常处理机制
java中所有错误的超类:Throwable。其下有两个子类:Error 和 Exception
Error的子类描述的都是系统错误,比如虚拟机内存溢出等。
Exception的子类描述的都是程序错误,比如空指针,下标越界等。
通常我们程序中处理的异常都是Exception。
异常处理机制中的try-catch
//java中有完善的异常处理机制。格式为:
try{
代码片段
}catch(XXXException e){
处理try中出现的XXXException的代码
}
try {
代码1;
代码2;
代码3;
}catch(NullPointerException e){
//定义try中出现异常后的解决办法
System.out.println("出现了空指针!");
//catch可以定义多个,针对try中不同异常有不同处理方式时可以分别捕获并处理
}catch(StringIndexOutOfBoundsException e){
System.out.println("出现了字符串下标越界了!");
}catch(Exception e){
System.out.println("反正就是出了个错!");
}
System.out.println("程序结束了!");
- try中报错代码以下的内容不执行。
通常以下情况我们可以捕获一个超类异常: 1:当try中出现了几种不同的异常,但是它们的解决办法相同时,我们可以catch它们共同的超类异常即可。 2:在最后一个catch处捕获Exception可以避免因为一个未处理的异常导致程序中断。
异常处理机制中的finally
finally块定义在异常处理机制中的最后一块。它可以直接跟在try之后,或者最后一个catch之后。
finally可以保证只要程序执行到了try语句块中,无论try语句块中的代码是否出现异常,最终finally都必定执行。
finally通常用来做释放资源这类操作
finally演示
不论try中的代码是否出现异常,只要执行到了 try 中的代码,一定会输出程序结束。而不是被打断报错。
System.out.println("程序开始了...");
try{
String line = "abc";
// String line = null;
System.out.<