JAVA实验报告异常处理(java异常实验心得)
简述Java异常处理的过程
java中对处理异常有两个方法,一个是抛出异常,另一个是异常处理.
一 抛出异常
抛出异常就是在需要提示错误的时候,通过使用throw语句来抛出异常.例如:
int a = 1;
int b = 2;
if (ab)
{
throw new Exception("a必须比b小");
}
二 异常处理
异常处理就是使用try catch语句对try块中包围的语句抛出的异常做处理,具体怎么处理要看业务需要.例如:
try
{
.....//try块包围的是一段需要处理的代码
}catch (Exception e)
{
e.printStackTrace();//catch块是对在try块中捕获的异常进行处理,这里是打印错误的堆栈信息
}
一个try块可以跟多个catch块,最后还有个finally块,用来执行try块做完之后需要执行的代码.例如:
try
{
.....
}catch (SQLException se)
{
se.printStackTrace();
}catch (FileNotFoundException fe)
{
fe.printStackTrace();
}catch (Exception e)
{
e.printStackTrace();
}finally
{
....
}
JAVA异常处理实验
/**
* catch只有运行出现异常时才执行
* finally是不论是否有异常都要执行
*/
public class test{
public static void main(String[] args){
int index=-1;
try {
int negative[]=new int[index];//不一定要-1,只要小于0的就能捕获到无效数组长度的一场
} catch (NegativeArraySizeException e) {
// TODO Auto-generated catch block
System.out.println("捕获异常!!:\n"+e);
}finally{
System.out.println("捕获完成!!\n\n");
}
try {
int sizeout[]=new int[10];
sizeout[11]=1;//索引超出数组长度
} catch (ArrayIndexOutOfBoundsException e) {
// TODO Auto-generated catch block
System.out.println("捕获异常!!:\n"+e);
}finally{
System.out.println("捕获完成!!\n\n");
}
try {
int nullpoint[]=null;
nullpoint[1]=1;
} catch (NullPointerException e) {
// TODO Auto-generated catch block
System.out.println("捕获异常!!:\n"+e);
}finally{
System.out.println("捕获完成!!\n\n");
}
}
}
Java异常处理
Java语言提供两种异常处理机制:捕获异常和声明抛弃异常;
1)捕获异常:在Java程序运行过程中系统得到一个异常对象是,它将会沿着方法的调用栈逐层回溯,寻找处理这一异常的代码。找到能够处理这种类型异常的方法后,运行时系统把当前异常交给这个方法处理;如果找不到可以捕获异常的方法,则运行时系统将终止,相应的Java程序也将退出。捕获异常是通过try-catch-finally语句实现的。语法为:
try{
...
}catch(ExceptionName1 e){
...
}catch(ExceptionName2 e){
...
}
...
}finally{
...
}
2)声明抛弃异常:当Java程序运行时系统得到一个异常对象时,如果一个方法并不知道如何处理所出现的异常,则可在方法声明时,声明抛弃异常。声明抛弃异常是在一个方法声明中的throws子句中指明的。如:
public int read() throws IOException{
...
}
其中throws IOException就是声明抛弃异常,throws后可以跟多个异常类型。
JAVA语言如何进行异常处理?
Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和finally。一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。
用try来指定一块预防所有异常的程序。紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的异常的类型。
throw语句用来明确地抛出一个异常。
throws用来标明一个成员函数可能抛出的各种异常。
可以在一个成员函数调用的外面写一个try语句,在这个成员函数内部写另一个try语句保护其他代码。每当遇到一个try语句,异常的框架就放到堆栈上面,直到所有的try语句都完成。