什么是异常?
[quote]导致程序中断的一段指令流[/quote]
有什么危害?
[quote]如果不对异常进行正确处理,可能导致程序的中断执行,造成不必要的损失[/quote]
如何处理异常?及异常的处理机制
[quote]try{可能产生异常的代码}
catch(异常类 异常对象){异常处理语}可以有多个catch
finally{异常统一出口,一定会执行}[/quote]
异常类
[quote]Throwable{Exception 一般表示程序中出现的问题,可以由try...catch处理
Error 可能是Jvm错误,程序无法处理}[/quote]
注意点:
1. 可以用Exception 捕获所有的异常,但最好分开捕获。且分开捕获要在Exception之前,不然编译为报错。
2. 输出异常信息可以用 System.out.println 也可以用Exception的方法printStackTrace()。
3. 异常时产生一个异常类实例化对象,与catch后面的异常类想匹配,若是同一类型就执行后面的语句,若所有Catch后无匹配,则执行finally.finally中的语句,无论异常是否发生,都会执行
[quote]导致程序中断的一段指令流[/quote]
有什么危害?
[quote]如果不对异常进行正确处理,可能导致程序的中断执行,造成不必要的损失[/quote]
如何处理异常?及异常的处理机制
[quote]try{可能产生异常的代码}
catch(异常类 异常对象){异常处理语}可以有多个catch
finally{异常统一出口,一定会执行}[/quote]
异常类
[quote]Throwable{Exception 一般表示程序中出现的问题,可以由try...catch处理
Error 可能是Jvm错误,程序无法处理}[/quote]
public class ExceptionDemo06{
public static void main(String args[]){
System.out.println("********** 计算开始 ***********") ;
int i = 0 ; // 定义整型变量
int j = 0 ; // 定义整型变量
try{
String str1 = args[0] ; // 接收第一个参数
String str2 = args[1] ; // 接收第二个参数
i = Integer.parseInt(str1) ; // 将第一个参数由字符串变为整型
j = Integer.parseInt(str2) ; // 将第二个参数由字符串变为整型
int temp = i / j ; // 此处产生了异常
System.out.println("两个数字相除的结果:" + temp) ;
System.out.println("----------------------------") ;
}catch(ArithmeticException e){ // 捕获算术异常
// System.out.println("算术异常:" + e) ;
e.printStackTrace() ;
}catch(NumberFormatException e){ // 捕获数字转换异常
System.out.println("数字转换异常:" + e);
}catch(ArrayIndexOutOfBoundsException e){ // 捕获数组越界异常
System.out.println("数组越界异常:" + e) ;
}catch(Exception e){
System.out.println("其他异常:" + e) ;
}
System.out.println("********** 计算结束 ***********") ;
}
};
注意点:
1. 可以用Exception 捕获所有的异常,但最好分开捕获。且分开捕获要在Exception之前,不然编译为报错。
2. 输出异常信息可以用 System.out.println 也可以用Exception的方法printStackTrace()。
3. 异常时产生一个异常类实例化对象,与catch后面的异常类想匹配,若是同一类型就执行后面的语句,若所有Catch后无匹配,则执行finally.finally中的语句,无论异常是否发生,都会执行