`
YL之城
  • 浏览: 20638 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

异常的捕获与处理

阅读更多

在我们编写java程序时,我们经常遇到的问题就是:程序老出现问题。这里出现的问题可分为两种:一、程序出现错误(Error);二、程序出现异常(Exception)。程序出现错误,那就是用户的问题,即出现了语法错误,只能自己不断的调试更正。而当一个程序在编译时没有问题,但在运行时可能出现各种各样的错误导致程序退出,这就是异常。本节主要对异常来做个小小的分析。

异常是导致程序中断运行的一种指令流。如果不对异常进行正确的处理,则可能导致程序的中断执行,造成不必要的损失,所以要在程序的设计中必要的考虑各种各样异常的发生,并正确的做好相应的处理,以确保程序的正常执行。我们分以下几步来说明问题。

一、在程序中使用异常处理

在写程序的时候,如果出现异常,我们必须做相关的处理,在Java中异常处理语句的格式为:

try{

//有可能出现的异常语句

}catch(异常类 异常对象){

//编写异常的处理语句

}[catch(异常类 异常对象){

//编写异常的处理语句

}……]

[finally{

//一定会运行到的程序代码

}]

例如:如下一个简单的程序(除数为0出现的异常)

public class Test {

public static void main(String[] args) {

int i=10;

int j=0;//我们知道当除数为0的时候会出现ArithmeticException异常

try{

int temp=i/j;

System.out.println("两个数字相除的结果为:"+temp);

System.out.println("*****************");

}catch(ArithmeticException e){

System.out.println("出现了异常"+e);

}

}

}

这个时候因为对异常进行了处理,程序就能正确的运行。程序一般会出现多种异常,如果不想进行处理,我们可以在catch语句中写如下代码,调用Exception中的方法,打印异常:

catch(ArithmeticException e){

e.printStackTrace();

}

二、throwsthrow关键字

在定义方法时可以使用throws关键字声明,使用throws声明的方法表示此方法不处理异常,交给方法的调用处进行处理,其使用格式如下:

public 返回值类型 方法名(参数列表……)throws 异常类(){}

为了说明问题,我们看以下代码:

class Math{

public int div(int i,int j)throws Exception{

int temp=i/j;

return temp;

}

}

public class Test {

public static void main(String[] args) {

Math m=new Math();

try{

System.out.println("两个数字相除的结果为:"+m.div(10, 2));

}catch(Exception e){

e.printStackTrace();

}

}

}

在主函数中,不管是否有问题,当调用了div方法时,都要进行异常处理,用try……catch块进行异常的捕获和处理。其实throws是在方法div处定义的,那么我们也可以在主函数中使用throws关键字来处理异常,这样主函数就向上抛出异常,将异常抛给Java虚拟机进行处理。这就好比一个学校,学生有什么事情处理不了,向上报给老师,老师处理不了上报给校长,到校长了也就到头了,那么Java的“头”就是JVM

throws不同的是,也可以直接使用throw抛出一个异常,抛出时直接诶抛出异常类的一个实例化对象即可。

public class Test {

public static void main(String[] args) {

try{

throw new Exception("自己抛出的异常!!");

}catch(Exception e){

e.printStackTrace();

}

}

}

上述并不难理解,就是手工抛出异常类得实例化对象。

虽然Java中已经提供了大量的异常类,但是有时这些异常类也很难满足开发者的需求,所以用户可以根据自己的需要定义自己的异常类。只要注意在定义异常类时要继承Exception类。

<!--EndFragment-->

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics