java异常处理机制
public static void main(String[] args) {
System.out.println("程序开始了");
try{
String str="a";
/*
* 当jvm执行代码时遇到异常时,会实例化该异常的一个实例,
* 然后设置好代码执行的过程,并将该异常抛出
* 如果抛出异常的代码所在方法没有处理异常的能力,异常会抛到当前方法之外
* 由调用当前方法的代码片段去处理
*/
System.out.println(str.length());
System.out.println(str.charAt(0));
System.out.println(Integer.parseInt(str));
/*
* try代码片段中出错的代码之后的内容都不会被执行
*/
System.out.println("!!!!");
}catch(NullPointerException e){
System.out.println("出现了空指针!");
/*
* catch可以定义多个,针对不同的异常有不同
* 处理手段,可别分别捕获这些异常
*/
}catch(StringIndexOutOfBoundsException e){
System.out.println("字符串下标越界了");
/*
* 应当有一个好习惯,在最后一个catch中捕获Exception,尽量避免
* 因为一个为捕获的一场导致程序中断
* 捕获顺序应当是子类型异常上面先捕获,父类型异常在下后捕获
*/
}catch(Exception e){
System.out.println("反正就是出了个错");}
}