java程序员修炼之道之异常的处理

来源:互联网 发布:面试算法100题 编辑:程序博客网 时间:2024/06/05 23:59

java异常的处理

1Java异常的概念:

Java的异常是java提供的用于处理程序中的错误的一种机制。

所谓的错误就是指在程序运行的过程中发生的一些异常的事件。

2java异常的分类:

Exception 异常层次结构的根类;

ArithmeticException算术错误形式,比如除数为0

ArrayIndexOutOfBoundsException数组下标越界;

NullPointerException空指针异常;

ClassNotFoundException不能加载所需的类;

InputMismatchException想得到的数据类型和实际输入的类型不匹配;

IllegalArgumentException方法接收非法的参数;

ClassCastException对象强制类型转换错误;

NumberFormatException数字格式转换异常,比如把“abc转换成数字;

3,异常的处理:

①:Try-catch块:

→如果try块中所有的语句都正常的执行完毕,不会发生异常。那么catch中的所

有语句都不会执行。

→如果在try语句块在执行的过程当中碰到异常,而抛出的异常在catch块没有声

明,那么程序立刻退出。


②:try-catch-finally

try-catch-finally结构中try块是必须的。Catchfinally块是可选的,但是两者至

少要出现一个。

Finally块中语句不执行的唯一情况就是:在异常的代码中执行System.exit(1);直接

退出java虚拟机。


4,声明异常--throws

publicclassThrows {

publicstaticvoidmain(String[] args) {

try{

method();

}catch(Exception e) {

System.err.println("出现错误:被除数和除数必须是整数,"+"除数不能为0");

}

}

publicstaticvoidmethod()throwsException{

Scannerinput=newScanner(System.in);

System.out.println("请输入被除数:");

intnum1=input.nextInt();

System.out.println("请输入除数:");

intnum2=input.nextInt();

System.out.println(String.format("%d/ %d = %d", num1,num2,num1/num2));

}

}



5,抛出异常-throw

java语言中,可以使用throw关键字来自行抛出异常。

publicclassPerson {


privateStringsex="";//设置性别

publicvoidsetSex(String sex) throwsException{

if(sex.equals("")|| sex.equals("")){

this.sex=sex;

}else{

thrownewException("性别只能是男或者女!");

}

}

/**

*打印出基本信息

*/

publicvoidprint(){

System.out.println(this.sex);

}

}


publicclass Test{

publicstaticvoidmain(String[] args) {

Personp=newPerson();

try{

p.setSex("x");

p.print();

}catch(Exception e) {

System.out.println(e);

}

}


}



6java异常的体系结构:

①,Throwable类:所有的异常类型都是Throwable的子类,它派生出两个子类:Error

Exception

error类:表示仅仅靠程序的本身无法恢复的严重错误。

Exception类:由java应用程序抛出和处理的非严重性的错误,可以通过程序本身恢

复这种错误。

④编译时异常:表示在写程序代码的时候语法错误,java编译不通过。

⑤运行时异常:RuntimeException表示程序编译通过,但是在程序运行时出现的异常。