异常处理

来源:互联网 发布:网络分销协议 编辑:程序博客网 时间:2024/05/22 15:00

在程序运行时打断正常程序流程的任何不正常的情况称为错误异常

一个异常代表一个非正常情况或错误的对象,由程序或运行时环境自动产生,也可以使用throw语句抛出。针对异常可以根据需要进行相应的捕获和处理。错误类似异常,不同之处是错误代表不可恢复的问题并且必须处理。

在程序中使用了异常处理,就可以在解决问题之后使程序继续运行,提高了应用程序的健壮性和容错能力。

java用于异常处理的关键字有5个:try,catch,finally,throw和throws

在程序中应把可能产生异常的代码包含在一个try程序块中,try程序块后面紧跟着一个或多个catch程序块。每个catch程序块都指定了它所能捕获和处理的异常类型,且都是一个异常处理程序。

在try-catch语句中还可以再包含try-catch语句,构成try-catch的嵌套结构。

如果一个try程序块中没有发生任何异常,那么就跳过该块的异常处理程序,继续执行最后一个catch块之后的代码。如果有finally程序块,就执行finally程序块。

finally程序块中通常都包含一些用于资源释放的代码块。例如,在finally程序块中应将try程序块中打开的所有文件关闭。

异常可以在方法的try程序块中产生,也可以在try程序块中直接或间接调用的方法中产生,在异常处理程序中可以使用异常对象的toString()方法获得异常类名和异常原因字符串,使用printStackTrace()输出调用堆栈跟踪信息。

Error类错误是不可恢复的系统错误,由系统处理。RunTimeException类异常是在程序设计时的大意或粗心引起的,可以通过调试程序解决,程序中一般也不作处理。除此之外的其他异常程序应尽可能处理,以提高程序的健壮性。

在一个方法中产生异常时,有3种处理方式:(1)忽视异常从而引起程序运行终止;(2)在可能抛出异常的地方使用try-catch捕获并处理;(3)在方法说明中使用throws子句声明异常,由调用该方法的上层方法捕获并处理。

Java要求对使用throw语句抛出的异常和使用throws子句声明的异常必须处理,否则会产生编译错误。

程序员可以定义自己的异常类,用来处理用户程序中特定的逻辑运行错误。


try-catch-finally语句的使用举例如下

import  java.io.*;

public class CatchException {

public  static  void  main (String  args[ ] ) {

  int a,b,c;

 a=110;

 b=0;

  try {

 c=a/b;

System.out.println(a+"/"+b+"="+c);

}catch(ArithmeticException e) {

 System.out.println("出现被0除的异常情况");

}catch(Exception e)  {

  System.out.println("异常类型为 "+e);

}finally{

System.out.println("除数="+a);

System.out.println("被除数="+b);

}

a=110;

b=10;

try{

c=a/b;

System.out.println(a+"/"+b+"="+c);

}catch (ArithmeticException e) {

  System.out.println("出现被0除的异常情况");

}catch (Exception e) {

  System.out.println("异常类型为"+e);

}finally{

System.out.println("除数="+a);

System.out.println("被除数="+b);

      }

  }

}

原创粉丝点击