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

java 异常二

2016-05-09 22:25 295 查看
在本程序中,对于除数是-1,也视为是错误的,是无法进行运算的。

那么就需要对这个问题进行自定义的描述。

当在函数内部出现了throw抛出异常对象,那么,就需要给对应的处理动作。

要么在内部try catch处理;要么在函数上声明让调用者处理。

一般情况下,函数内出现异常,函数上需要声明。

如何快速定义异常信息呢?

因为父类中已经把异常信息的操作都完成了。

所以子类只要在构造时,通过super语句将异常信息传递给父类。

那么就可以直接通过getMessage方法获取自定义异常信息了。

自定义异常:

必须是自定义类继承Exception。

继承Exception原因:

异常体系有一个特点:因为异常类和异常对象都被抛出。

他们都具备可抛性,这个可抛性是Throwable这个体系中独有特点。

只有这个体系中的类和对象才可以被throws和throw操作。

throw和throws的区别:

(1)throws使用在函数上。

     throw使用在函数内部。

(2)throws后面跟的是异常类,可以跟多个异常类,异常类之间用逗号隔开。

     throw后面的跟的是异常对象。
class FuShuException extends Exception
{
/*private String msg;
FuShuException(String msg)
{
this.msg=msg;
}
public String getMessage()
{
return msg;
}*/
int num;
FuShuException()
{
super();//空参数的构造函数。
}
FuShuException(String name,int num)
{
super(name);//通过super语句将异常信息传递给父类
this.num=num;
}
public void show()
{
System.out.println("除数的值:"+num);
}

}

class Demo
{
public int function(int a,int b) throws FuShuException   //这个函数有可能会出现异常,某个函数在调用该函数时需要抛出异常(throws)或对异常进行处理(try...catch)。
{
int[] arr=new int[a];
if (b<0)
{
throw new FuShuException("除数出现了小于零的情况",b);//如果满足条件则抛出异常信息。
}
return a/b;
}
}

class ExceptionClassDemo1
{
public static void main(String args[])   //throws FuShuException   ——这是抛出异常,即编译时不会报错,在运行时虚拟机会提示异常信息。
{
Demo de=new Demo();
//下面的代码对异常进行处理。
try
{
int result=de.function(5,-1);
System.out.println(result);
}
catch (FuShuException e)
{
System.out.println(e.getMessage());
e.show();
}
/*
int result=de.function(5,-1);
System.out.println(result);
*/
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 异常