您的位置:首页 > 职场人生

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

2013-03-23 16:19 381 查看
java异常的处理
1,Java异常的概念:

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

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

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块是必须的。Catch和finally块是可选的,但是两者至

少要出现一个。

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

退出java虚拟机。

4,声明异常--throws
publicclassThrows
{
publicstatic
voidmain(String[] args) {
try{
method();
}catch(Exception e) {
System.err.println("出现错误:被除数和除数必须是整数,"+"除数不能为0");
}
}

publicstatic
voidmethod()
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
{

privateString
sex="男";//设置性别
publicvoidsetSex(String
sex) throwsException{
if(sex.equals("男")||
sex.equals("女")){
this.sex=sex;
}else{
thrownewException("性别只能是男或者女!");
}
}
/**
*
打印出基本信息
*/
publicvoidprint(){
System.out.println(this.sex);
}
}

publicclass
Test{
publicstatic
voidmain(String[] args) {
Personp=newPerson();
try{
p.setSex("x");
p.print();
}catch(Exception e) {
System.out.println(e);
}
}

}

6,java异常的体系结构:
①,Throwable类:所有的异常类型都是Throwable的子类,它派生出两个子类:Error
和Exception;

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

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

复这种错误。

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

⑤运行时异常:RuntimeException表示程序编译通过,但是在程序运行时出现的异常。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: