A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zclove898 高级黑马   /  2011-12-12 00:18  /  2068 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 zclove898 于 2011-12-12 22:49 编辑

看一下这个程序:
class Demo
{
      int div(int a,int b)throws Exception
      {
             return a/b;
      }
}
class Exception
{
       public static void main(String[]  args)throws Exception
        {
          Demo d=new Demo();
           int x=d.div(4,0);
         Systim.out.println("x="+x);
              Systm.out.println("over)";      
        }
}
这个程序中,主函数main(String[] agrs)后加上throws Exception与不加运行结果是一样的,问:加上throw Exception有什么作用     

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

4 个回复

倒序浏览
怎么可能 你主函数 不加throws Exception 首先编译器就会报Unhandled exception type Exception   不让你通过 加上throws Exception 就是说 我知道这里可能会出错 出错时把这个异常抛出来。
回复 使用道具 举报
不加的话就是语法错误,编译是不通过的.  加了说明把问题抛给JVM来处理了.

不加也行,可以用try来处理掉

评分

参与人数 1技术分 +1 收起 理由
王德云 + 1

查看全部评分

回复 使用道具 举报
首先你要知道为什么要声明throws,是因为main里调用了一个己声明异常的div方法,就像你买个配件,别人要告诉你这个配件在什么情况下会发产异常一样,这时你用这配件时如果出现了异常,你就知道该怎么处理这异常一样是一个道理,如果你不在main上面声明,JVM就不知道怎么处理了。就会报编译错误,如果你不想要JVM处理这异常的,你就要用Try catch 语句自己处理。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
int div(int a,int b)throws Exception
throws Exception是抛出异常,然而下面你又没有用try catch 处理异常,直接把异常抛到主函数中去了
而在主函数中
public static void main(String[]  args)throws Exception
又抛出异常,没有处理异常。。把这个异常直接抛给了JVM

当你输入除数是0时,报/by zero异常

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马