错误分三类
* :编译错误 编译阶段排除
* 、逻辑错误 人的想法与机器的运行结果不一致
* 运行时错误。程序运行中出现的不可能执行的操作
*
* 异常有三种
*1.是JAVA虚拟机产生,不可控
*2.是标准异常类,由java系统预先定义好的,需用户自己解决
*3.由用户自定义的异常,使用 throws new+ErrorException
*
*抛出(throw)异常:1.程序在运行过程中出现了运行错误,2.产生的异常与系统中预定义某个异常类相对应,3.系统就自动产生一个该异常类的对象,
*if(程序有处理异常的代码){
* 异常对象交由该代码处理,终止程序的运行。
* }
*if(程序有处理异常的代码){
* 异常交给Java运行系统默认的异常处理代码进行处理,终止程序的运行。
* }
*异常方式抛出:异常发生————>检查有无捕获异常代码————>有 直接处理
* 无————>抛给方法调用处————>检查有无捕获异常代码————>有 直接处理
* 无————>抛给方法调用处(直至main主方法处调用系统处理)
*/
public class Demo {
public static void main(String[] args) throws ArrayIndexOutOfBoundsException {//利用throws语句 ,在方法头写出需要抛出的异常
try{//抛出与捕获
int a=2,b=0,c[]={1,2,3};
if(b==0)
throw new ArithmeticException (); //利用throw语句 在方法体内抛出异常
System.out.println(c[a+2]);
System.out.println(a/b);
}catch(ArrayIndexOutOfBoundsException e){
System.out.println("异常错误是越位"+e);//e.getMessage可以直接得到结果
}finally{//不论异常是否发生,都必须执行这段代码
System.out.println("必须打印");
}
}
}
* :编译错误 编译阶段排除
* 、逻辑错误 人的想法与机器的运行结果不一致
* 运行时错误。程序运行中出现的不可能执行的操作
*
* 异常有三种
*1.是JAVA虚拟机产生,不可控
*2.是标准异常类,由java系统预先定义好的,需用户自己解决
*3.由用户自定义的异常,使用 throws new+ErrorException
*
*抛出(throw)异常:1.程序在运行过程中出现了运行错误,2.产生的异常与系统中预定义某个异常类相对应,3.系统就自动产生一个该异常类的对象,
*if(程序有处理异常的代码){
* 异常对象交由该代码处理,终止程序的运行。
* }
*if(程序有处理异常的代码){
* 异常交给Java运行系统默认的异常处理代码进行处理,终止程序的运行。
* }
*异常方式抛出:异常发生————>检查有无捕获异常代码————>有 直接处理
* 无————>抛给方法调用处————>检查有无捕获异常代码————>有 直接处理
* 无————>抛给方法调用处(直至main主方法处调用系统处理)
*/
public class Demo {
public static void main(String[] args) throws ArrayIndexOutOfBoundsException {//利用throws语句 ,在方法头写出需要抛出的异常
try{//抛出与捕获
int a=2,b=0,c[]={1,2,3};
if(b==0)
throw new ArithmeticException (); //利用throw语句 在方法体内抛出异常
System.out.println(c[a+2]);
System.out.println(a/b);
}catch(ArrayIndexOutOfBoundsException e){
System.out.println("异常错误是越位"+e);//e.getMessage可以直接得到结果
}finally{//不论异常是否发生,都必须执行这段代码
System.out.println("必须打印");
}
}
}