当你有需要知道异常的时候可以用catch捕获.
和和,这是我的理解,见笑了
throws则直接抛弃吧

解决方案 »

  1.   

    例如:
    public void test() throws Exception    {  ....      }
    在调用这个test()方法时,必须
    ....
    try{
     test();
    }catch(Exception e) {...... }
    即如果被抛出,必须在调用的时候对可能出现的异常做处理.public void test() { 
    try{
     ....
    }catch(Exception e) {...... }
    }
    调用的时候只是:
    test();
    就行了.只是处理位置不一样!
      

  2.   

    楼上最好也把checkedException和uncheckedException讲清楚.处理是不同的.
      

  3.   

    在方法签名之后的throws关键字表示一个约定,告诉编译器这个方法有可能会抛出一个或者多个异常对象。所以在编译代码的时候,编译器会方法的调用是否在try-catch-finally结构中,以确保如果抛出异常,它会得到处理。
    方法签名之后可以没有throws关键字,这样的话可以在方法体中在需要的时候随时抛出异常。
      

  4.   

    调用java的方法就像你叫一个人去办事,比如说你让他去买东西,那个人会警告你,买东西可以,但是会有问题,比如说你给的钱不够了,没有你要买的东西没有了什么的,这些可能它会在后面throws出来,虽然这些有可能不发生,但是你应该有应付这些情况的准备,如果你可以做主,你就要try catch住这些Exception,然后处理;如果你处理不了这些问题,那你也throw出去,是谁让你找人买的,你就交给他去处理(比如说你的老板)。这里catch 后有几个不好的习惯:一个就是遇到Exception不予处理,人家告诉你钱不够了,你不搭理人家,但等你用到让他买的东西的时候突然发现没买来,可就来不及了。第二个不好的习惯就是catch(Exception),由于Exception是所有异常的父类,也就是说所有的异常都会在这里被捕捉,然后下面相同的处理这样就像是不管人家告诉你有什么问题,你只要一听到问题两个字,就给他添钱,这样肯定是不对的,如果出的问题是没有你想要买的东西,添钱也不行还有就是大块的try ... catch 这样也不好,就像你先让那个人买东西,然后让他做饭,然后喂你吃饭(想起我mm来了,我好喜欢我mm)然后这三件事其中某一个出了问题,你也不问是哪个就直接给出解决办法,肯定是不合理的明白了吗
      

  5.   

    呵呵,楼上的楼上比喻经典!!
    看看Thinking in java就可以了。对异常处理没必要钻得太深!
      

  6.   

    虽然没必要钻得太深,但是有些问题一定要搞懂的。同意 binny(骑个破车看夕阳) 的看法,呵呵抛出异常是为了要让后面的人了解错误发生在哪里?所以造异常的时候也要注意这点了。
      

  7.   

    在方法签名之后的throws关键字表示一个约定,告诉编译器这个方法有可能会抛出一个或者多个异常对象。所以在编译代码的时候,编译器会方法的调用是否在try-catch-finally结构中,以确保如果抛出异常,它会得到处理。
    方法签名之后可以没有throws关键字,这样的话可以在方法体中在需要的时候随时抛出异常。
    ----------------------------
    不一定的。public class Test{
    void testA()throws Exception{
      throw new Excption("Method A:Test!");
    }void testB()throws Exception{
      System.out.println("Start testA()!");
      testA();
    }public static void main(String args[])throws Exception{
      Test abc = new Test();
      abc.testB();
    }
    }