您的位置:首页 > 编程语言 > Java开发

java基础知识回顾之异常处理

2014-09-20 22:09 260 查看
异常处理机制

在程序运行的过程中难免会发生例外,例如除0溢出,数组越界和文件找不到等,一旦发生例外情况,将阻止程序的正常运行。为了将强程序的强壮性,必须考虑到可能发生的异常并能进行相应的处理。

java通过面向对象的方法进行异常处理,一个方法在运行过程中,一旦发生了例外,就会产生一个异常对象,这一过程称为抛出,之后就会寻找相应的处理代码进行处理,这一过程称为捕获。如果没有找到,将会终止程序运行。

java中的例外分为两类,分别是错误(Error)和异常(Exception)。Error是指java虚拟机内部放生错误,由java虚拟机抛出,例如资源耗尽等,通常这类情况不予处理。Exception是指编程错误或偶然的外界因素造成的一般性问题,例如对负数开平方根,访问的文件找不到和网络连接中断等。这类例外需要程序员进行处理。

错误和异常的类结构:



一般所谓的异常处理是指Exception类的异常处理,Exception类又可以分为运行时异常(RuntimeException)和非运行时异常,RutimeException是运行时有Java虚拟机抛出的异常,例如:算数运算异常ArithmetricException和数组界异常ArrayIndexOutofBoundsException等;非运行时异常,例如输入输出异常(IOException)等,java编译器要求程序员必须捕获处理所有的非运行时异常,否则编译不通过,但对运行时异常可以不做处理,但为了程序的健壮性,最好还是处理一下。

常见的运行时异常(RuntimeException)有:

· ArithmetricException:数学计算异常

· NullPointerException:空指针异常。

· NegativeArraySizeException:负数组长度异常。

· ArrayOutofBoundsException:数组索引越界异常。

· ClassNotFoundException:类文件未找到异常。

· ClassCastException:类型强制转换异常。

· SecurityException:违背安全原则异常。

非RuntimeException类型的异常主要有:

· NotSuchMethodException:方法未找到异常。

· IOException:输入输出异常。

· EOException:文件已结束异常。

· FileNoeFoundException:文件未找到异常。

· NumberFormatException:字符串转换为数字异常。

· SQLException:操作数据库异常。

处理异常的两种方式:

1.使用try{}catch(Exception e){}finally{//无条件执行}

2. 方法名前throws Exception

自定义异常:

方法是继承Exception类,为方便使用通常提供两个构造方法,一个无参,一个有参。



public class UserNotFoundException extends Exception{
public UserNotFoundException(){                    //无参构造方法
super();
}
public UserNotFoundException(String msg){   //有参构造方法
super(msg);
}
}


自定义异常的使用,两种方式:

违反业务逻辑:

public void f1()throws UserNotFoundException{
if(条件不满足){
throw UserNotFoundException('条件不满足');
}
}


try--catch()捕获输出:

public void f2(){
try{
//业务代码
}catch(Exception e){
throw new UserNotFoundException('没有词用户');
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: