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

JAVA学习笔记_关于异常机制处理问题

2013-11-09 16:20 661 查看
1.java对异常的处理是通过对异常封装成对象,程序每当发生一个异常的情况,就创建一个异常对象并转入引起异常的方法,这些方法根据异常的不同类型来捕捉异常,并防止由于异常而引起程序崩溃,还能在方法退出前执行特定的代码段。

2.出现异常问题的划分:严重问题(java通过Error类进行描述,对于Error类一般不写针对性的代码对其进行处理);

非严重问题(java通过Exception类进行描述,对于Exception可以使用针对性的处理方式进行处理)。

3.Error类和Exception类继承Throwable类

4.在方法上通过throws 关键字声明该功能有可能出现的异常类,可以接多个异常类,用逗号隔开。

int div(int a,int b)throws ArithmeticException,NullPointerException{
int[] arr = new int[a];
return a/b;
}


注意的是:1)声明的异常类不是具体的,是Exception,或者是自定义的类继承Exception,则在调用该方法时必须做异常处理。否则编译不能通过。

2)声明的是具体的类继承的RuntimeException,调用者可以不进行异常处理,编译能通过,只在运行时不通过。

5.对于自定义异常类,需要在方法内部对异常情况进行用throw new X(参数)抛一个该异常类,java中默认的异常类则不用。抛出异常类对象时,则需要在调用函数声明异常让调用者处理,或者是在函数内用try.....catch处理。

例外:如果自定义的异常类是继承RuntimeException类则方法内部抛出该异常,调用函数可以不声明,内部不处理,编译一样通过。

//自定义异常
class FuShuException extends Exception
{
FuShuException(String msg){
super(msg);
}
}

class Demo
{
int div(int a,int b)throws FuShuException{
if(b < 0){
throw new FuShuException("除以负数了!");//抛出自定义异常对象
}
return a/b;
}
}

class ExceptionDemo
{
public static void main(String[] args)
{
Demo d = new Demo();
try{
System.out.println("您好!");
int x = d.div (4,-1);
System.out.println("x = "+x);
}
catch(Exception e){  //接收自定义异常对象
System.out.println(e.toString());
}
System.out.println("结束!");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: