书上的代码,格式写我自己习惯的:
class MyMath
{
public int div(int x,int y)throws Exception
{
int result=0;
try
{
result=x/y; //除法计算
}
catch (Exception e)
{
throw e; //向上抛,这个我不理解
}
class TestDemo
{
public static void main(String [] args)
{
try
{
System.out.println(new MyMath().div(10,0))l;
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
我不理解的地方:
第一:
为什么div函数里要try,可以不try吗?如果是直接声明异常,然后直接抛给调用者,让调用者try可以吗?
就像这样:
public int div(int x,int y)throws Exception
{
int result=0;
result=x/y; //除法计算
}
第二:
throw关键字不是很理解,我的理解是它可以在函数内手工抛出一个异常,然后要么try要么抛给调用者,这样理解对吗?
就如下代码,我自己抛出了一个异常,所以我必须得try否则程序就停止运行,如果我不try那我就必要在函数后面写throws Exception
调用者去处理,这样理解对吗?
try
{
throw new Exception("我抛着玩的");
}
catch (Exception e)
{
e.printStackTrace();
}
第三:
throw e我不理解,意思是不是把异常抛给div函数,然后div函数又抛给调用者?