public static void main(String args[])throws Exception{
//code块
}有些方法中会有异常丢出来 但是为什么在main()中throws Exception就可以编译通过了 而不写就编译不过?
另外为什么即使有异常要丢出 不处理也可以执行 反而catch了就会出现这个那个异常 程序终止了...?

解决方案 »

  1.   

    自己先看看Java中关于异常的介绍吧。
      

  2.   

    throws Exception 是直接抛出异常,处不处理由你决定.try{}catch{}是将异常捕捉,在哪里出现的异常,都有详细的异常描述,要处理异常才继续执行代码.
      

  3.   

    throws Exception 是把异常往外抛,意思是在这个方法里面不用去写try catch,而让调用这个方法的方法去处理它。
      

  4.   

    正解,catch要进行处理后才能继续运行
      

  5.   

    回复:楼主第一个问题.
    JAVA中异常的种类很多(具体的种类和作用以及用法请查阅相关资料)一部分是需要你手动处理的异常,例如
    IOException 就是输入输出异常 这类异常 如果你调用了 IO相关的类或者方法那么你就要对这个异常进行处理,throws或者try catch,否则的话就会出现编译不通过 不管是main方法还是其他什么方法都是一样的。
    而有些异常 系统会自动去捕获它 即使你不做throws 或者try catch 编译也能通过,举个例子NullPointerException空指针异常,这个我估计是学JAVA的人总会碰到的异常,如果楼主是初学没遇到过,以后肯定会遇到的(这里就当成例子具体意思不做解释了 要写敲太多字的。。)这个异常即使你没有做throws或者try catch系统也可以自动捕获到,所以即使你不去做处理 编译也是可以通过的。
    第二个问题
    throws Exception的意思是抛出一个异常,交给JAVA去处理。
    至于try catch,try 是捕获一个异常然后在catch 中做你想要的相应处理。
    所以楼主后面说的话出现了一个误区就是throws其实也是处理异常的方法 只不过你是抛出去交给JAVA虚拟机去处理了。而try catch是你自己处理的 至于会出现什么信息 取决于你的catch里是怎么写的。另外说一下,异常在应用中不管是throws和try catch其主要目的是停止异常语句之后的代码执行,这才是异常最重要的作用,记住这个异常就不是什么难题了,希望我的回答能对楼主学习JAVA起到一定的帮助。
      

  6.   


    throws Exception是不处理异常,并将其抛给上一级(调用它的方法),mian方法里如果不try...catch可以继续往上抛给java虚拟机,建议在本方法中处理
      

  7.   

    6楼讲的很详细了@@楼主JAVA的书还是要翻翻~