Exception,异常处理操作try{}catch(XXXException e){}finally{}

package seday07.exception;
/**
* @author xingsir
* try-catch 异常处理机制
* 语法:
* try{
* 代码片段
* }catch(XXXException e){
* 解决try代码片段中出现XXXException的处理代码
* }finally{
* finally块中的内容都必定执行
* }
*/
public class TryCatchDemo {

public static void main(String[] args) {

System.out.println("开始运行程序。。。。。。。");

try {
String str="hello world";//字符串
System.out.println(str.length());//长度为11
System.out.println(str.charAt(4));//charAt() 方法用于返回指定索引处的字符 ,索引位置第4位
/*
* try语句块中如果某句代码抛出了异常,那么 try语句块中该句代码后面的内容都不会被运行
*/
System.out.println(str.charAt(12));//索引位置第4位,此时下标越界
System.out.println("successful!!!!!!!!");//此时这句话就不运行了
} catch (NullPointerException e) {
System.out.println("空指针异常");
/*
* catch可以定义多个,针对不同异常有不同处理方式 时,我们可以分别捕获这些异常并进行处理
*/
}
catch (StringIndexOutOfBoundsException e) {
System.out.println("下标越界");//直接输出这句话

/*
* 可以在最后一个catch捕获Exception,避免因为 一个未捕获的异常导致程序中断
*/
}catch (Exception e) {
System.out.println("其它异常");
}
/* finally块是异常处理机制的最后一块,可以直接跟在try或最后一个catch之后。
* finally可以保证只要代码执行到try当中,无论try语句块中的代码是否抛出异常,finally块中的内容都必定执行。
* 通常将释放资源这类操作放在这里确保运行.
*/
finally {
System.out.println("不影响我,我继续执行");
}
System.out.println("运行结束,bye");
}

}