程序在运行的时候,并不是一直可以顺利地从开始运行到结尾,可能因为程序员自身的逻辑或者是编译器的问题出现一系列的异常。
(摘抄)在java中,异常处理的定义如下:在一些软件库或编写的代码中提供一种标记异常发生机制,叫做抛出异常;在程序的另一些地方会添加代码来处理这些异常状况,叫做异常处理。
异常处理第一种方法:使用 try-catch()语句
catch子句只能够处理在它前面的try语句块捕获的异常,如果是在try语句块前面的代码产生了异常,程序将采用默认的异常处理机制处理。
public static void main (String args[]){
int n1=10;
int n2=0;
double d;
try{
System.out.println(n1+"除以"+n2+"=");
d=(double)n1/n2;
System.out.println(d);
}catch(Exception e){
e.printStackTrace();
}
}
}
其结果是:
10除以0=
Infinity(意思是无限,出现异常)
异常处理第二种方法:使用finally子句
不论try语句块如何退出,finally子句总是会执行。
public static void main (String args[]){
int n1=10;
int n2=0;
double d;
try{
System.out.println(n1+"除以"+n2+"=");
d=(double)n1/n2;
System.out.println(d);
}catch(Exception e){
e.printStackTrace();
}
}
finally{
System.out.println("finally执行");
}
}
其结果是:
10除以0=
Infinity
finally执行
public static void main (String args[]){
int n1=10;
int n2=1;
double d;
try{
System.out.println(n1+"除以"+n2+"=");
d=(double)n1/n2;
System.out.println(d);
}catch(Exception e){
e.printStackTrace();
}finally{
System.out.println("finally执行"); }
}
}
运行结果:
10除以1=
10.0
finally执行