class Demo
{
int div(int a,int b)throws Exception//throws Exception表示这段程序可能会有问题
{
return a/b;
}
}
class ExceptionDemo
{
public static void main(String[]args)
{
Demo d=new Demo();
int x =d.div(4,1);//程序运行到此处会给出,如下提示:未报告的异常错误,必须对其进行捕捉或
//声明,表明解决的办法有两种:捕捉,声明。
System.out.println("over"+x);
}
}
-------------------------------------
/*
声明的解决方法如下:在调用声明了throws Exception方法的函数上也声明throws Exception,表示不做处理,也抛出
*/
class Demo
{
int div(int a,int b)throws Exception
{
return a/b;
}
}
class ExceptionDemo
{
public static void main(String[]args)throws Exception//声明方法在此处
{
Demo d=new Demo();
int x =d.div(4,1);
System.out.println("over"+x);
}
}
备注:程序能够通过编译,并执行,用声明的方法解决了此问题。
------------------------------------------------------------------------------------------------------------
class Demo
{
int div(int a,int b)throws Exception
{
return a/b;
}
}
class ExceptionDemo
{
public static void main(String[]args)throws Exception
{
Demo d=new Demo();
int x =d.div(4,0);//把1变为0,编译通过,运行出现问题,即执行到此处把问题抛给了虚拟机
System.out.println("over"+x);
}
}
------------------------------------------------------------------------------------------------------------
/*
第二种解决方法:捕捉
*/
class Demo
{
int div(int a,int b)throws Exception
{
return a/b;
}
}
class ExceptionDemo
{
public static void main(String[]args)
{
Demo d=new Demo();
try//程序没有报错,是因为此处进行了捕捉
{
int x =d.div(4,1);//因为没有错误所以程序运行了下面的输出语句,当1变为0时这里下面的输
//出语句不执行
System.out.println("x="+x);
}
catch (Exception e)//为1时没有错误,此处不执行,当1变为0时,这里执行
{
System.out.println(e.toString());
}
System.out.println("over");//执行
}
}
以上就是在有可能出现异常的方法声明了throws Exception后的两种处理方法,建议使用捕捉方法,因为声明方法没有对问题进行处理,显然有点不负责任。 |
|